Всем доброго!!! Вопрос в следующем: Так как мои познания в С не велики, но в процессе программирования приходиться работь с кодом на С\С++, возникают проблемы и путаница в типах. На одном из форумах на вопрос о данной структуре: Код (Text): typedef struct _HARDWARE_PTE { unsigned Valid : 1; unsigned Write : 1; unsigned Owner : 1; unsigned WriteThrough : 1; unsigned CacheDisable : 1; unsigned Accessed : 1; unsigned Dirty : 1; unsigned LargePage : 1; unsigned Global : 1; unsigned CopyOnWrite : 1; unsigned Prototype : 1; unsigned reserved : 1; unsigned PageFrameNumber : 20; } HARDWARE_PTE, * PHARDWARE_PTE, **PPHARDWARE_PTE; мне сказали, что это тип двойного слова(DDword), а поля структуры описывают, сколько бит выделено под поле. Я это принял на веру, но по прошествию некоторого времени, на подобный же вопрос, теже люди ответили иначе, сказав что еденицы показыват не размерность поля, а его содержание, т.е PageFrameNumber == 20, а не 20 битам. В каком случае они были правы. и как понять это? Код (Text): typedef enum _MM_PAGE_PRIORITY { LowPagePriority, NormalPagePriority = 16, HighPagePriority = 32 } MM_PAGE_PRIORITY; может все дело в магическом слове unsigned. если можно подробный о подобных типах. Заранее, всем спасибо.
тут размер поля в битах. это обычное перечисление. LowPagePriority = 0, остальное написано. Читай труп страуса - там это все расписано.