海湾合作委员会:有关GCC“优化”和“内联”定义的问题

时间:2011-05-16 14:13:52

标签: optimization gcc inline

我的问题如下:

1)如果我告诉GCC 优化现有特定源文件中的代码,那么这将应用于从该文件调用的所有函数(可能驻留在不同的源文件中)或者只对本文件中本地存在的函数/代码?也就是说,文件优化是否具有递归行为?

2)如果我将一个函数声明为内联(这样我就不会得到函数开销)并将此函数声明为一个文件,我强制GCC不应用优化,那么如果我从< strong>另一个源文件,我仍然会得到无优化效果吗?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

问题2:

如果在另一个源中包含带内联函数的头文件,那么该函数将被内联,在内联之前编译它是没有意义的。

答案 1 :(得分:0)

优化不是递归的 - 如果不优化文件,那么它只是该文件中不会优化的函数。至于内联,函数可以在编译它的文件中内联,通常是通过#include机制,如果这是你要问的(这远非明确)。