首页 > 试题广场 >

下面代码打印结果为()union package{ c...

[单选题]
下面代码打印结果为()
union package
{
char head;
int  body;
};
struct message
{
char id;
int  crc;
union package pack;
};

int main()
{
printf("size=%d\n",sizeof(struct message));
return 0;
}
  • 9
  • 10
  • 11
  • 12
union 为联合结构体,其中两个变量占用一块内存,所以int比较大,最大值为4字节,且四字节可以整除int的4字节,所以这个union为4字节。后面按照字节对齐为8。所以一共是12
发表于 2019-09-10 21:26:22 回复(0)
id,head各占1个字节;
body,crc各占4个字节;
合计10个字节
但是存在字节对齐,要被4整除,所以提升到12
发表于 2019-08-31 19:49:18 回复(0)