【发布时间】:2018-05-12 19:28:17
【问题描述】:
编译中包含但完全未使用的空 C++ 类在运行时是否占用内存?如果有,我怎么知道?
例如
#include <iostream>
int main() {
int a, b;
// random operations
a = 100;
b = a ^ 0x2904af3e;
a = b & 0xf92c92db;
std::cout << a << " " << b << std::endl;
return 0;
}
// does this take any memory?
class Empty {
};
【问题讨论】:
-
不,它没有。
-
@NeilButterworth 当我使用 sizeof(Empty) 时,我得到了 1 个字节。我正在使用 Gnu C++ 编译器。
-
如果你实例化它,类的实例将占用的内存大小 - 如果你不实例化它,它不会占用任何内存。
-
我想你可以在这里找到答案stackoverflow.com/questions/2362097/…
-
@NeilButterworth 好的。感谢您的澄清。那么类本身在运行时不会有任何内存开销?