67 votes

inline vs __inline vs __inline__ vs __forceinline ?

Quelles sont les différences entre ces quatre mots (clés) en ligne ?

inline , __inline , __inline__ , __forceinline .

83voto

KennyTM Points 232647

inline est le site mot-clé, en C++ et C99.

__inline est un mot-clé spécifique au fournisseur (par ex. MSVC ) pour la fonction inline en C, puisque le 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 vendeur (principalement MSVC), qui appliquera plus de force pour mettre la fonction en ligne que l'option __inline (par exemple, inline même si cela entraîne un code plus mauvais).

Il y a aussi __attribute__((always_inline)) dans GCC et clang.

20voto

Charles Bailey Points 244082

__inline , __inline__ et __forceinline sont toutes spécifiques à la mise en œuvre. En raison du double soulignement, ce sont tous des identifiants réservés à l'implémentation, qui ne devraient pas entrer en conflit avec les identifiants utilisés dans les applications.

inline est le seul mot-clé C++.

8voto

Pour le compilateur Visual Studio, cela signifie :

  • en ligne - suggestion au compilateur de mettre votre code en ligne

  • __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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X