Macros et C++
C++ offre de nouvelles fonctions, dont certaines supplantez ceux proposés par le préprocesseur C ANSI.Ces nouvelles fonctions d'améliorer la sécurité de type et la prévisibilité du langage :
En C++, les objets déclarés comme const peuvent être utilisés dans les expressions constantes.Cela permet aux programmes de déclarer des constantes qui ont des informations de type/valeur, et des énumérations qui peuvent être affichées symboliquement à l'aide de le débogueur.Utilisation de la directive d' #define de préprocesseur définir des constantes n'est pas aussi précis.Aucun stockage n'est alloué à un objet de const à moins qu'une expression qui prend son adresse est trouvée dans le programme.
La fonction de fonction inline C++ supplante les macros de fonction-type.Les avantages de l'utilisation des fonctions inline sur les macros sont les suivants :
Sécurité de type.Les fonctions inline sont soumises à la même vérification de type que les fonctions normales.Les macros ne sont pas de type sécurisé.
corrigez la gestion des arguments qui ont des effets secondaires.Les fonctions inline évaluent les expressions fournies comme arguments avant de créer le corps de la fonction.Par conséquent, il n'y a aucun risque d'une expression avec des effets secondaires est potentiellement dangereuse.
Pour plus d'informations sur les fonctions inline, consultez l' inline, __inline, __forceinline.
Pour la compatibilité descendante, toutes les fonctions de préprocesseur qui existaient en C ANSI et dans les caractéristiques précédemment C++ sont conservés pour Microsoft C++.