Quelles sont les différences entre ces quatre mots (clés) en ligne?
inline
, __inline
, __inline__
, __forceinline
.
inline
est le mot-clé , en C++ et C99.
__inline
Est un mot clé spécifique au fournisseur (par exemple MSVC ) pour la fonction inline en C, car C89 ne l'a pas.
__inline__
Est similaire à __inline
Mais provient d'un autre ensemble de compilateurs.
__forceinline
Est un autre mot clé spécifique au fournisseur (principalement MSVC), qui appliquera plus de force pour intégrer la fonction que l'indication __inline
(Par exemple, en ligne même si cela entraîne un code plus mauvais).
Il y a aussi __attribute__((always_inline))
dans GCC et clang.
__inline
, __inline__
et __forceinline
sont toutes spécifiques à l'implémentation. En raison du double soulignement, ce sont tous des identifiants réservés à l'implémentation et ne devraient donc pas entrer en conflit avec les identifiants utilisés dans les applications.
inline
est le seul mot clé C++.
Pour le compilateur Visual Studio, cela signifie:
inline - suggestion au compilateur pour inline votre code
__ forceinline - remplace l'optimisation du compilateur intégré et génère du code en ligne
Pour plus de détails, voir: http://msdn.Microsoft.com/en-us/library/z8y1yy88%28VS.71%29.aspx