說(shuō)我在源文件中有這個(gè)小功能static void foo() {}并且我構(gòu)建了二進(jìn)制文件的優(yōu)化版本,但我不想內(nèi)聯(lián)此函數(shù)(出于優(yōu)化目的)。我可以在源代碼中添加宏以防止內(nèi)聯(lián)嗎?
3 回答

ABOUTYOU
TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
GCC有一個(gè)名為
-fno-inline-small-functions
因此在調(diào)用gcc時(shí)使用它。但是副作用是所有其他小的函數(shù)也未內(nèi)聯(lián)。

莫回?zé)o
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
一種可移植的方法是通過(guò)指針調(diào)用該函數(shù):
void (*foo_ptr)() = foo;
foo_ptr();
盡管這會(huì)產(chǎn)生不同的分支指令,但這可能不是您的目標(biāo)。這帶來(lái)了一個(gè)好處:您的目標(biāo)是什么?
- 3 回答
- 0 關(guān)注
- 1088 瀏覽
添加回答
舉報(bào)
0/150
提交
取消