![]() |
От: | shabshay | |
Дата: | 12.04.02 06:54 | ||
Оценка: |
К>struct s { BYTE b1; BYTE b2; DWORD dw3; BYTE b4; };
К>+-------------------+-------------------+-------------------+
К>+----+----+----+----+----+----+----+----+----+----+----+----+
К>| b1 | b2 | | | <------dw3------> | b4 | | | | -- sizeof(s)==12
К>+----+----+----+----+----+----+----+----+----+----+----+----+
К> |--------> |------------->
К> выравнивание до границы слова
К>struct p { BYTE b1; BYTE b2; BYTE b3; DWORD dw4; };
К>+-------------------+-------------------+
К>+----+----+----+----+----+----+----+----+
К>| b1 | b2 | b3 | | <------dw4------> | -- sizeof(p)==8
К>+----+----+----+----+----+----+----+----+
К> |--->
К> выравнивание до границы слова
К>pragma pack(push,1);
К>+-------------------+-------------------+
К>+----+----+----+----+----+----+----+
К>| b1 | b2 | <------dw3------> | b4 | -- sizeof(s)==7
К>+----+----+----+----+----+----+----+
К>+----+----+----+----+----+----+----+
К>| b1 | b2 | b3 | <------dw4------> | -- sizeof(p)==7
К>+----+----+----+----+----+----+----+
К>