防止gcc内联所有功能

Dav*_*vid 2 c gcc inline

以下代码阻止GCC编译器内联特定功能.

void __attribute__ ((noinline)) my_func() 
{
  ... 
}
Run Code Online (Sandbox Code Playgroud)

我希望阻止gcc内联所有功能.如果不将属性添加到所有功能,我可以这样做吗?

Jea*_*bre 5

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

-fno-inline除了标记为always_inline属性的函数外,不要展开任何内联函数.这是未优化时的默认值.

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

如果你这样做是为了减少代码大小,我建议你抛出-Os选项(优化大小)