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

If a function A is called only called by another function B, will GCC automatically puts that function A into funtion B as a part of B's code?

例如:

有一个函数 A:

void functionA();

和函数 B:

void functionB() {
    functionA();
}

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

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

GCC 可以根据以下规则内联函数:
使用 -O1,如果 functionA 是静态的并且只被调用一次。
加上-O2,如果body希望小于函数调用代码。
使用-O3,gcc 将考虑内联所有函数。
资料来源:https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html