gcc-finline函数选项

gcc-finline函数选项,gcc,inline,compiler-optimization,Gcc,Inline,Compiler Optimization,我有一个关于-finline函数选项的问题 我们正在测试我们实现的函数是否成功内联。 以下是观察结果 函数被内联为-01、-O2和-O3优化级别 函数没有内联到优化级别-O0,这是预期的 当我们尝试同时使用-O0和-finline函数进行编译时,我们仍然注意到这些函数没有内联。我们甚至尝试了一个非常简单的方法(单行返回语句),并观察到了相同的结果 因此,-finline函数标志与-O0一起使用似乎是多余的(它不会使函数内联)。我仍在搜索gcc/g++手册中是否记录了这种行为。请让我们知道,如果有

我有一个关于-finline函数选项的问题

我们正在测试我们实现的函数是否成功内联。 以下是观察结果

  • 函数被内联为-01、-O2和-O3优化级别
  • 函数没有内联到优化级别-O0,这是预期的
  • 当我们尝试同时使用-O0和-finline函数进行编译时,我们仍然注意到这些函数没有内联。我们甚至尝试了一个非常简单的方法(单行返回语句),并观察到了相同的结果

    因此,-finline函数标志与-O0一起使用似乎是多余的(它不会使函数内联)。我仍在搜索gcc/g++手册中是否记录了这种行为。请让我们知道,如果有人对g++如何工作有确切的想法,请同时指定-finline函数和-O0

    关于gcc手册()中的

    大多数优化只有在命令行上设置了-O级别时才启用。否则,即使指定了单独的优化标志,它们也将被禁用

    从gcc手册()中:

    大多数优化只有在命令行上设置了-O级别时才启用。否则,即使指定了单独的优化标志,它们也将被禁用


    像这样定义函数
    inlinevoidfoo(constchar)\uuuuu属性(总是inline))


    从website()

    像这样定义函数
    内联void foo(const char)\uuuuu属性(总是内联))


    从网站()

    感谢您的链接。我确实去扔了那一页,但不知怎的错过了那一行!再次感谢…谢谢你的链接。我确实去扔了那一页,但不知怎的错过了那一行!再次感谢。。。