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