typedef union
{
long i;
int k[5];
char c;
}Date;
struct data
{
int cat;
Date cow;
double dog;
}animal;
在64位机器下,cout<<sizeof(Date)+sizeof(animal)<<endl;等于多少?
64位机器,sizeof(long)=8 sizeof(int)=4 sizeof(double)=8
我所知道的是union中变量共享空间,struct里要字节对齐。
我再自己两台电脑上试验结果,第一台苹果macbookpro,64位输出如图,第二台,2013年入的hp envy4,输出20 32(这个可以理解),64位输出真的无法解释,可能跟平台和编译器相关。
