考虑一下:
class Foo{
void func1(){
/*func1 code*/
}
void func2(){
/*func2 code*/
}
};
案例 1:Foo.h 中的类 Foo
案例 2:类 Foo 在 Foo.h 和 Foo.cpp 之间很好地分离
其他各种 cpp 文件包括 Foo.h
我的问题是...情况 1 会导致更大的二进制文件吗?
最佳答案
也许会,也许不会。它确实与头文件无关。这里重要的是你的成员函数是在类定义中定义的。当这样定义成员函数时,它们将被视为内联 函数。如果编译器决定不实际内联对这些函数的任何调用,则不会对代码大小产生任何影响。如果编译器决定内联任何(或所有)调用,答案将是“视情况而定”。对小函数的内联调用可能会导致代码大小增加和代码大小减少。这一切都取决于函数本身和编译器的能力(特别是优化能力)。
关于c++ - 头文件中的代码会增加二进制大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1576317/