Показать сообщение отдельно

  #4  
Старый 21.11.2008, 02:42
Smapt
Познающий
Регистрация: 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хСС)

как от него избавится?
 
Ответить с цитированием