Re[5]: Проблема с sizeof
От: shabshay  
Дата: 12.04.02 06:54
Оценка:
Здравствуйте Кодт, Вы писали:

К>Здравствуйте Micker, Вы писали:


S>>>Работает , но непонял почему , объясни для тех кто на бронепоезде и с первого раза не въежжает.


К>
К>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
К>+----+----+----+----+----+----+----+

К>

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.