Undef'ing une macro de fonction comme

voix
11

Dans le C / C ++ il existe 2 types de macro:

 #define ABC   /* usual */

und

 #define FUNC(a)  /*function-like*/

Mais comment puis-je les annuler la définition?

Mise à jour: Il n'y a donc pas de différence entre undefing « macro comme constante » et « macro fonction comme »?

Créé 17/08/2010 à 16:49
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
13

#undef ABC
#undef FUNC

#undef« annule » un précédent#define . L'effet est comme si vous jamais eu un précédent #definepour un identifiant donné. Notez que la #defines ne respectent pas la portée, il est donc préférable de les utiliser uniquement lorsque vous avez besoin.

Notez également qu'il n'a pas d' importance si un identificateur macro utilise la syntaxe « habituelle » , tandis qu'un autre utilise une syntaxe « fonction-like ». #define ABCet à la #define ABC(A)fois définir une macro appelée ABC. Si vous avez à la fois, sans #undefing l' un d'eux, le dernier « l'autre » l' emporte. (Certains compilateurs peuvent émettre un avertissement si cela se produit.)

Créé 17/08/2010 à 16:50
source utilisateur

voix
12
#undef ABC
#undef FUNC
Créé 17/08/2010 à 16:50
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more