关于结构体的问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 00:25:05
struct MyStruct
{
char dda;
double dda1;
int type ;
};
MyStruct k;
问sizeof(k)是多少?为什么?

sizeof(k)的答案是24,在32位机上VC环境下默认是8个字节对齐,也就是在结构体中1位的char占8位,4位的int也占8位,当然8位的double也占8位,这就是字节数对齐.
#pragma pack(4) //可以改默认字节对齐数
struct MyStruct
{
char dda;
double dda1;
int type;
}k;
#pragma pack()
改为4字节对齐后,答案就是16了.

要看在什么编译软件了
tc是(1+8+2=)11
vc是(1+8+4=)13