Was sind die Unterschiede zwischen diesen vier Inline- (Schlüssel-) Wörtern?
inline
, __inline
, __inline__
, __forceinline
.
Antworten:
inline
ist das Schlüsselwort in C ++ und C99.
__inline
ist ein herstellerspezifisches Schlüsselwort (z. B. MSVC ) für die Inline-Funktion in C, da C89 es nicht hat.
__inline__
ist ähnlich, stammt __inline
aber von einem anderen Satz von Compilern.
__forceinline
ist ein anderes herstellerspezifisches (hauptsächlich MSVC) Schlüsselwort, das mehr Kraft zum Inline-Funktionieren der Funktion als zum __inline
Hinweis verwendet (z. B. Inline, selbst wenn dies zu schlechterem Code führt).
Es gibt auch __attribute__((always_inline))
in GCC und klirren.
__inline
, __inline__
Und __forceinline
sind alle Implementierung spezifisch. Aufgrund des doppelten Unterstrichs sind alle Bezeichner für die Implementierung reserviert und sollten daher nicht mit den in Anwendungen verwendeten Bezeichnern in Konflikt stehen.
inline
ist das einzige C ++ - Schlüsselwort.
Für den Visual Studio-Compiler bedeutet dies:
Inline - Vorschlag an den Compiler, Ihren Code zu inline
__forceinline - überschreibt die integrierte Compileroptimierung und generiert Inline-Code
Weitere Informationen finden Sie unter: http://msdn.microsoft.com/en-us/library/z8y1yy88%28VS.71%29.aspx