首页 > struct与union相关问题

struct与union相关问题

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里要字节对齐。


推荐两篇文章,应该可以让你彻底搞懂这个问题:
http://www.jellythink.com/archives/468
http://www.jellythink.com/archives/413


我再自己两台电脑上试验结果,第一台苹果macbookpro,64位输出如图,第二台,2013年入的hp envy4,输出20 32(这个可以理解),64位输出真的无法解释,可能跟平台和编译器相关。

【热门文章】
【热门文章】