2010-05-04 9 views

Répondre

71

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 dans C, car C89 ne l'a pas. Est similaire à __inline mais provient d'un autre ensemble de compilateurs.

__forceinline__forceinline est un autre mot clé spécifique au fournisseur (principalement MSVC), qui appliquera plus de force pour aligner la fonction que l'indicateur __inline (par exemple inline même si cela entraîne un code moins bon).

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

+10

__forceinline est un indice plus puissant que l'intégration, mais reste juste un indice (http://msdn.microsoft.com/en-us/library/z8y1yy88%28VS.80%29.aspx). –

+0

Peut-être envisager de changer la langue «spécifique à Microsoft» en «spécifique au fournisseur» ou quelque chose comme ça. La plupart des jeux d'outils de développement croisé intégrés que j'utilise prennent également en charge __inline et __forceinline. Le monde est plus grand que MSOFT ;-) – Dan

+1

Oops accidentellement CW-ed le poste. Peu importe. – kennytm

18

__inline, et __forceinline sont tous spécifiques à la mise en œuvre. En raison du double trait de soulignement, ils sont tous des identificateurs réservés à l'implémentation, donc ils ne doivent pas entrer en conflit avec les identifiants utilisés dans les applications.

inline est le mot clé de la seule C.