防止gcc内联所有功能

时间:2018-08-16 11:09:36

标签: c gcc inline

以下代码可防止GCC编译器内联特定功能。

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

我希望防止gcc内联所有功能。 我可以在不将属性添加到所有功能的情况下做到这一点吗?

1 个答案:

答案 0 :(得分:5)

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

  

-fno-inline       除了标有always_inline属性的功能外,请勿展开任何内联功能。 这是未优化时的默认设置。

(来源:https://gcc.gnu.org/onlinedocs/gcc-4.9.1/gcc/Optimize-Options.html

如果您这样做是为了减小代码大小,建议您插入-Os选项(以优化大小)