у меня путаница с типами.....

Тема в разделе "WASM.BEGINNERS", создана пользователем LuckyDevil, 20 июн 2005.

  1. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Всем доброго!!!

    Вопрос в следующем:

    Так как мои познания в С не велики, но в процессе программирования приходиться работь с кодом на С\С++, возникают проблемы и путаница в типах. На одном из форумах на вопрос о данной структуре:
    Код (Text):
    1. typedef struct _HARDWARE_PTE
    2.         {
    3.         unsigned Valid           :  1;
    4.         unsigned Write           :  1;
    5.         unsigned Owner           :  1;
    6.         unsigned WriteThrough    :  1;
    7.         unsigned CacheDisable    :  1;
    8.         unsigned Accessed        :  1;
    9.         unsigned Dirty           :  1;
    10.         unsigned LargePage       :  1;
    11.         unsigned Global          :  1;
    12.         unsigned CopyOnWrite     :  1;
    13.         unsigned Prototype       :  1;
    14.         unsigned reserved        :  1;
    15.         unsigned PageFrameNumber : 20;
    16.       }
    17.         HARDWARE_PTE,
    18.      * PHARDWARE_PTE,
    19.     **PPHARDWARE_PTE;
    20.  


    мне сказали, что это тип двойного слова(DDword), а поля структуры описывают, сколько бит выделено под поле. Я это принял на веру, но по прошествию некоторого времени, на подобный же вопрос, теже люди ответили иначе, сказав что еденицы показыват не размерность поля, а его содержание, т.е PageFrameNumber == 20, а не 20 битам. В каком случае они были правы.

    и как понять это?
    Код (Text):
    1. typedef enum _MM_PAGE_PRIORITY {
    2.     LowPagePriority,
    3.     NormalPagePriority = 16,
    4.     HighPagePriority = 32
    5. } MM_PAGE_PRIORITY;




    может все дело в магическом слове unsigned.

    если можно подробный о подобных типах.

    Заранее, всем спасибо.
     
  2. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia


    тут размер поля в битах.



    это обычное перечисление. LowPagePriority = 0, остальное написано. Читай труп страуса - там это все расписано.
     
  3. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    infern0,thx.