2017-02-17 48 views
1

我最近在閱讀一些代碼並且遇到了這個成語。什麼C++習語是「extern __forceinline」?

extern 
__forceinline 
int foo() 
{ 
    return 0; 
} 

什麼是「extern __forceinline」成語?在這種情況下,「extern」會將內聯提示添加到內聯提示中?

+0

C++沒有'__forceiline',這意味着這是不太可能是一個 「C++成語」。 C語言具有'extern inline'構造,具有相當具體的含義(自C99以來)。但在C++'extern inline'中沒有特別的價值。 – AnT

+2

https://msdn.microsoft.com/en-us/library/bw1hbe6y.aspx –

+0

雙下劃線告訴你'__forceinline'是編譯器特定的。在這種情況下'extern'的效果也可能是編譯器特有的。它可能會被用來抑制警告。無論如何,這不是一個成語。 –

回答

0

__forceinline關鍵字覆蓋了成本/收益分析,並取決於程序員的判斷。使用__forceinline時請謹慎。不分青紅皁白地使用__forceinline可以導致更大的代碼,只有邊際性能增益,或者在某些情況下甚至會導致性能損失(例如,由於增加了對較大可執行文件的分頁)。

Link