类的大小?
- C/C++ code
#include "stdafx.h"class A{ void fun(){int a;}};//这个类的大小怎么解释?int _tmain(int argc, _TCHAR* argv[]){ int sizeA; A a; sizeA=sizeof(a);///为什么是1,??? printf("the size of class A is %d\n",sizeA); getchar(); return 0;}看了一下对应的汇编,vs 2010 express
;
- C/C++ code
sizeA=sizeof(a);0041179E mov dword ptr [sizeA],1 ///怎么直接就给个 1 ?
- C/C++ code
main()后面执行的这些汇编是?求大概的科普一下啊...以前学过.win32汇编还是不太懂.004132E0 push ebp 004132E1 mov ebp,esp 004132E3 sub esp,0F0h 004132E9 push ebx 004132EA push esi 004132EB push edi 004132EC lea edi,[ebp-0F0h] 004132F2 mov ecx,3Ch 004132F7 mov eax,0CCCCCCCCh 004132FC rep stos dword ptr es:[edi]
[解决办法]
没有成员变量的类就只有一个字节占位
[解决办法]
我试了试class中没有任何成员, size也是1.
我觉得可能是函数对于一个程序来说只是一个符号, 这个符号本身不占任何字节.
只是在编译中起到一个符号标示.
[解决办法]
[解决办法]
没有成员变量的类就只有一个字节占位
[解决办法]
据说是为了区别空类的实例化变量,让其有不同地址