Подтвердить что ты не робот

Inline vs __inline vs __inline__ vs __forceinline?

Каковы различия между этими четырьмя встроенными (ключевыми) словами?

inline, __inline, __inline__, __forceinline.

4b9b3361

Ответ 1

inline - это ключевое слово, в С++ и C99.

__inline - ключевое слово, зависящее от поставщика (например MSVC) для встроенной функции в C, поскольку C89 ее не имеет.

__inline__ похож на __inline, но из другого набора компиляторов.

__forceinline - это другое ключевое слово, зависящее от поставщика (главным образом, MSVC), которое будет применять большее усилие для включения функции, чем подсказка __inline (например, встроенная, даже если это приведет к ухудшению кода).

Там также __attribute__((always_inline)) в GCC и clang.

Ответ 2

__inline, __inline__ и __forceinline являются специфичными для реализации. Из-за двойного подчеркивания все идентификаторы, зарезервированные для реализации, поэтому не должны конфликтовать с идентификаторами, используемыми в приложениях.

inline - единственное ключевое слово С++.

Ответ 3

Для компилятора Visual Studio это означает:

  • встроенный - предложение компилятору встроить ваш код

  • __ forceinline - переопределяет встроенную оптимизацию компилятора и генерирует встроенный код

Подробнее см. http://msdn.microsoft.com/en-us/library/z8y1yy88%28VS.71%29.aspx