1. ホーム
  2. c++

inline vs __inline vs __inline__ vs __forceinline?

2023-09-10 18:01:19

質問

4つのインライン(キーワード)の違いは何ですか?

inline , __inline , __inline__ , __forceinline .

どのように解決するのですか?

inline キーワードで、C++ や C99 では

__inline はベンダ固有のキーワードです(例えば MSVC ) で、C89 にはないので、C のインライン関数のためのものです。

__inline____inline に似ていますが、別のコンパイラのものです。

__forceinline は別のベンダ特有の(主にMSVC)キーワードで、関数をインライン化する力が __inline ヒントよりも関数をインライン化するように強制します (例: より悪いコードになったとしてもインライン化する)。

また __attribute__((always_inline)) をGCCとclangに追加しました。