以下代码可防止GCC编译器内联特定功能。
void __attribute__ ((noinline)) my_func()
{
...
}
我希望防止gcc内联所有功能。 我可以在不将属性添加到所有功能的情况下做到这一点吗?
答案 0 :(得分:5)
避免内联的全局选项(使用-O2
或其他优化标志时)为-fno-inline
-fno-inline 除了标有always_inline属性的功能外,请勿展开任何内联功能。 这是未优化时的默认设置。
(来源:https://gcc.gnu.org/onlinedocs/gcc-4.9.1/gcc/Optimize-Options.html)
如果您这样做是为了减小代码大小,建议您插入-Os
选项(以优化大小)