例如:
有一个功能A:
void functionA();
和功能B:
void functionB() {
functionA();
}
如果funcionA仅在整个项目中由functionB调用,那么GCC(或其他编译器)会自动将functionA作为functionB代码的一部分放入functionB吗?
或者我应该使用-O3强制启用GCC中的内联功能吗?
答案 0 :(得分:1)
GCC可以根据以下规则内联函数:
使用-O1时,如果functionA是静态的,只调用一次
使用-O2时,如果预期主体小于函数调用代码
使用-O3,gcc将考虑内联所有功能
资料来源:https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html