假设我在源文件中有这个小函数
static void foo() {}
我构建了一个优化版本的二进制文件,但我不希望这个函数内联(出于优化目的).有没有可以在源代码中添加宏来防止内联?
假设我在源文件中有这个小函数
static void foo() {}
我构建了一个优化版本的二进制文件,但我不希望这个函数内联(出于优化目的).有没有可以在源代码中添加宏来防止内联?
您需要特定于gcc
的noinline
属性.
此函数属性防止 函数不会被考虑为 内衬.如果函数没有 有副作用,有 优化,而不是内联 使函数调用得到优化 离开,尽管函数调用是 活着.为了不让这样的电话 优化了,把
asm ("");
个
按如下方式使用它:
void __attribute__ ((noinline)) foo()
{
...
}