2017-02-17 28 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