これらの4つのインライン(キーワード)ワードの違いは何ですか?
inline
、__inline
、__inline__
、__forceinline
。
inline
は、C++およびC99のtheキーワードです。
___inline
_はベンダー固有のキーワードです(例: [〜#〜] msvc [〜#〜] )。これは、C89にはないため、Cのインライン関数です。
___inline__
_は___inline
_に似ていますが、別のコンパイラーセットからのものです。
___forceinline
_は別のベンダー固有の(主にMSVC)キーワードであり、___inline
_ヒント(たとえば、コードが悪化した場合でもインライン)よりも関数をインラインに強制します。
GCCとclangには__attribute__((always_inline))
もあります。
__inline
、__inline__
および__forceinline
はすべて実装固有です。アンダースコアが2つあるため、これらはすべて実装用に予約されている識別子であるため、アプリケーションで使用される識別子と競合することはありません。
inline
が唯一のC++キーワードです。
Visual Studioコンパイラの場合:
inline-コードをインライン化するためのコンパイラへの提案
__ forceinline-組み込みコンパイラの最適化をオーバーライドし、インラインコードを生成します
詳細については、以下を参照してください: http://msdn.Microsoft.com/en-us/library/z8y1yy88%28VS.71%29.aspx