Riempimento e allineamento dei membri della strutturaPadding and Alignment of Structure Members

ANSI 3.5.2.1 Riempimento e allineamento dei membri delle strutture. Indica anche se un campo di bit può gestire un limite dell'unità di archiviazioneANSI 3.5.2.1 The padding and alignment of members of structures and whether a bit field can straddle a storage-unit boundary

I membri di struttura vengono archiviati in modo sequenziale nell'ordine in cui sono dichiarati: il primo avrà l'indirizzo di memoria più basso e l'ultimo quello più alto.Structure members are stored sequentially in the order in which they are declared: the first member has the lowest memory address and the last member the highest.

Ogni oggetto dati dispone di un requisito di allineamento.Every data object has an alignment-requirement. Il requisito di allineamento per tutti i dati ad eccezione di strutture, unioni e matrici è la dimensione dell'oggetto o la dimensione di compressione corrente (specificata con /Zp o il pragma pack, qualunque sia inferiore).The alignment-requirement for all data except structures, unions, and arrays is either the size of the object or the current packing size (specified with either /Zp or the pack pragma, whichever is less). Per strutture, unioni e matrici, il requisito di allineamento è il requisito di allineamento di maggiori dimensioni dei propri membri.For structures, unions, and arrays, the alignment-requirement is the largest alignment-requirement of its members. A ogni oggetto viene allocato un offset affinchéEvery object is allocated an offset so that

offset % alignment-requirement == 0offset % alignment-requirement == 0

I campi di bit adiacenti vengono compressi nella stessa unità di allocazione a 1, 2 o 4 byte se i tipi integrali sono della stessa dimensione e se il campo di bit successivo rientra nell'unità di allocazione corrente senza oltrepassare il limite imposto dai requisiti di allineamento comuni dei campi di bit.Adjacent bit fields are packed into the same 1-, 2-, or 4-byte allocation unit if the integral types are the same size and if the next bit field fits into the current allocation unit without crossing the boundary imposed by the common alignment requirements of the bit fields.

Vedere ancheSee Also

Strutture, unioni, enumerazioni e campi di bitStructures, Unions, Enumerations, and Bit Fields