代码之家  ›  专栏  ›  技术社区  ›  David

防止gcc内联所有函数

  •  2
  • David  · 技术社区  · 6 年前

    以下代码防止GCC编译器内联特定函数。

    void __attribute__ ((noinline)) my_func() 
    {
      ... 
    }
    

    我希望防止gcc内联所有函数。 我可以在不向所有函数添加属性的情况下完成吗?

    1 回复  |  直到 6 年前
        1
  •  5
  •   Jean-François Fabre    6 年前

    避免内联的全局选项(使用 -O2 或其他优化标志)是 -fno-inline

    除了用always\u inline属性标记的函数外,不要展开任何内联函数。 这是不优化时的默认值。

    https://gcc.gnu.org/onlinedocs/gcc-4.9.1/gcc/Optimize-Options.html )

    如果您这样做是为了减少代码大小,我建议您将 -Os