c++中类和对象的大小是不是永远都是相同的?

xxdd 发布于 2013/08/30 12:04
阅读 261
收藏 0

class A

{

////////////////////////

///////////////////////

}

main()

{

A a;

 printf("\r\n%d,%d",sizeof(A),sizeof(a));

}

加载中
0
BoYunfeng
BoYunfeng
C++程序编译时,Class对象需要占用多大的内存空间,取决于:

 * 非静态成员变量总合。
 * 加上编译器为了CPU计算,作出的数据对齐处理。
 * 加上为了支持虚函数,产生的额外负担。

在编译成可执行程序后,就固定下来了。这时,可以说是“永远相同”的

0
my_ro
my_ro

引用来自“jidai1978”的答案

C++程序编译时,Class对象需要占用多大的内存空间,取决于:

 * 非静态成员变量总合。
 * 加上编译器为了CPU计算,作出的数据对齐处理。
 * 加上为了支持虚函数,产生的额外负担。

在编译成可执行程序后,就固定下来了。这时,可以说是“永远相同”的

同意楼上的观点

非数组的sizeof:

#define _sizeof(T) ((size_t)((T*)0 + 1))

返回顶部
顶部