2015-06-20 4 views
0

я не знаю, Что среднее "без знака: 5","без знака: (число)" и Союзы

, например, если я создаю эти:

int a:8; 
unsigned b:8; 

является б а целое?

и другой вопрос:

в союзе с этими значениями:

union 
    { long quad; 
     long duble; 
     char byte; 
     struct { 
     unsigned :16; 
    unsigned :16; 
    unsigned :16; 
    unsigned :15; 

    unsigned bit1:1; 
     } bits; 
    }pes; 


pes.quad=0x12345678; 
pes.duble=0xabcd; 
pes.byte=0xef; 
pes.bits.bit1=1; 

почему в Adress является: ef ab 00 00 cc cc cc cc

Я думал, что это будет ef ab 34 12 00 00 00 80

+1

Это * битовые поля *. –

ответ

1

: вводит bit field, который является значением в структуре определенной логики al, но с фактическим размером, измеренным в битах. Это полезно для определения структур, которые обращаются к отдельным битам значения (например, для извлечения битов флага из слова).

Например, определение unsigned b:5; unsigned c:3; бы b и c один и те же байты в памяти, где b будет 5 бит и c бы другой 3 бит.

+0

, и если вы определили: unsigned b: 2; ?? только 2 бита или 1 байт с 2 битами, но другие биты - это trush? –

Смежные вопросы