Archiviazione dei campi di bit

ANSI 3.5.2.1 L'ordine di allocazione dei campi di bit in un tipo int

I campi di bit sono allocati in un Integer dal bit meno significativo a quello più significativo. Nel codice riportato di seguito

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:

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.

Vedere anche

Strutture, unioni, enumerazioni e campi di bit