
21.11.2008, 02:42
|
|
Познающий
Регистрация: 29.01.2008
Сообщений: 82
С нами:
9622901
Репутация:
88
|
|
есть такой код:
Код:
struct abs1
{
unsigned char a; //1-byte
unsigned short b;//2-byte
};
void pr(unsigned char*t)
{
for(int i=0;i<sizeof(t);i++) printf("%x ",t[i]);
}
int main()
{
abs1 test;
test.a = (unsigned char)0x31;
test.b = (unsigned short)0x32;
printf("Struct size: %d\n",sizeof(test));
pr((unsigned char*)&test);
getchar();
return 0;
}
Выводит:
Struct size: 4
31 CC 32 00
Почему размер структуры 4 если (чар -1баит и шорт-2байта) должен быть 3 байта.
Лишний байт виден при печати структуры (второй - 0хСС)
как от него избавится?
|
|
|