70.1.1.1. СТРУКТУРЫ И ВЫРАВНИВАНИЕ




THIS SECTION IS UNDER CONSTRUCTION




Выравнивание влияет на структуры: Пусть у нас есть структура типа: struct A { char c; // 1 byte integer long long l; // 8 byte integer }; в зависимости от выравнивания мы можем иметь: Для модели ILP32: BYTE 0 1 2 3 +---+---+---+---+ Выравнивание = 1 +00 | c | l | +---+---+---+---+ Смещение(l) = +0001 +04 | l | Размер(A) = 9 bytes +---+---+---+---+ +08 | l | +---+ BYTE 0 1 2 3 +---+---+---+---+ Выравнивание = 4 +00 | c |XXXXXXXXXXX| +---+---+---+---+ Смещение(l) = +0004 +04 | l | Размер(A) = 12 bytes +---+---+---+---+ +08 | l | +---+---+---+---+ BYTE 0 1 2 3 +---+---+---+---+ Выравнивание = 8 +00 | c |XXXXXXXXXXX| +---+---+---+---+ +04 |XXXXXXXXXXXXXXX| +---+---+---+---+ Смещение(l) = +0008 +08 | l | Размер(A) = 16 bytes +---+---+---+---+ +0C | l | +---+---+---+---+

Index Prev Next