随笔---乱七八糟

1:空struct为何有大小
 struct A
 {
   int a;
   int b;
   int c;
 };

 struct B
 {
 
 };

 int _tmain(int argc, _TCHAR* argv[])
 {
  cout<<sizeof(A)<<endl;

   cout<<sizeof(B)<<endl;

   getchar();

   return 0;
 }

  1:C++是静态编译型语言,本质上源代码中声明的一切变量对于编译器来说都只是一块内存,即使是空struct也一样需要分配,不过只分配1 byte,sizeof应该是4,因为有内存对齐。Stan Lippman的那本Inside C++ Model说得很清楚。

  2:即使是空的struct一样有大小的,不过是一个字节, 因为一个空结构,虽然没有内部成员,但是必须在内存上有所体现,不然在取地址的时候就出问题了,class也是一样的;

引自:http://www.cppblog.com/sunraiing9/archive/2007/02/28/19052.html

你可能感兴趣的:(随笔---乱七八糟)