猿问

如何告诉gcc不要内联函数?

说我在源文件中有这个小功能


static void foo() {}

并且我构建了二进制文件的优化版本,但我不想内联此函数(出于优化目的)。我可以在源代码中添加宏以防止内联吗?


慕妹3242003
浏览 1060回答 3
3回答

ABOUTYOU

GCC有一个名为-fno-inline-small-functions因此在调用gcc时使用它。但是副作用是所有其他小的函数也未内联。

莫回无

一种可移植的方法是通过指针调用该函数:void (*foo_ptr)() = foo;foo_ptr();尽管这会产生不同的分支指令,但这可能不是您的目标。这带来了一个好处:您的目标是什么?
随时随地看视频慕课网APP
我要回答