Archiviazione dei campi di bitStorage of Bit Fields

ANSI 3.5.2.1 L'ordine di allocazione dei campi di bit in un tipo intANSI 3.5.2.1 The order of allocation of bit fields within an int

I campi di bit sono allocati in un Integer dal bit meno significativo a quello più significativo.Bit fields are allocated within an integer from least-significant to most-significant bit. Nel codice riportato di seguitoIn the following code

struct mybitfields  
{  
   unsigned a : 4;  
   unsigned b : 5;  
   unsigned c : 7;  
} test;  

int main( void )  
{  
   test.a = 2;  
   test.b = 31;  
   test.c = 0;  
}  

i bit sono disposti come segue:the bits would be arranged as follows:

00000001 11110010  
cccccccb bbbbaaaa  

Poiché i processori 80x86 memorizzano il byte basso degli Integer prima del byte alto, l'Integer 0x01F2 superiore viene archiviato nella memoria fisica come 0xF2 seguito da 0x01.Since the 80x86 processors store the low byte of integer values before the high byte, the integer 0x01F2 above would be stored in physical memory as 0xF2 followed by 0x01.

Vedere ancheSee Also

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