如果函数A只被另一个函数B调用,那么GCC会自动将该函数A作为B代码的一部分放入函数B吗?

时间:2016-10-24 02:57:32

标签: gcc compiler-optimization

例如:

有一个功能A:

void functionA();

和功能B:

void functionB() {
    functionA();
}

如果funcionA仅在整个项目中由functionB调用,那么GCC(或其他编译器)会自动将functionA作为functionB代码的一部分放入functionB吗?

或者我应该使用-O3强制启用GCC中的内联功能吗?

1 个答案:

答案 0 :(得分:1)

GCC可以根据以下规则内联函数:
使用-O1时,如果functionA是静态的,只调用一次 使用-O2时,如果预期主体小于函数调用代码 使用-O3,gcc将考虑内联所有功能 资料来源:https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html