首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于struct的有关问题

2012-04-02 
关于struct的问题unionu{inta[4]charbdoublec}structs{intaub}voidmain(intargc,char*argv[]){cout

关于struct的问题
union   u{
  int   a[4];
  char   b;
  double   c;
};
struct   s{
  int   a;
  u   b;
};
void   main(int   argc,   char   *argv[])
{
  cout   < <   sizeof(s)   < <   endl;
}
我在vc,gcc+cygwin+eclipse都是输出24?
还有为什么一个空的struct{}大小是1?
vc调试出来这个地址是CD,不知是什么?难道是c++的rtti的特性?标识type_info?

[解决办法]
google 对齐
空的struct{}大小是(至少)1,C++规定,为了保证每个对象都有独一无二的地址。
[解决办法]
从你的回复看,你是听说对齐而不是知道。
union是16,它的对齐大小是多少?VC的默认对齐大小又是多少?

热点排行