随笔---乱七八糟

    技术2022-05-11  85

    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


    最新回复(0)