Partage via


#undef, directive (C/C++)

Supprime (élimine) un nom créé précédemment avec #define.

Syntaxe

identificateur de #undef

Notes

La directive #undef supprime la définition actuelle de l’identificateur. Par conséquent, les occurrences suivantes de l’identificateur sont ignorées par le préprocesseur. Pour supprimer une définition de macro à l’aide de #undef, donnez uniquement l’identificateur de macro, et non une liste de paramètres.

Vous pouvez également appliquer la directive #undef à un identificateur qui n’a aucune définition précédente. Cela garantit que l'identificateur n'est pas défini. Le remplacement des macros n’est pas effectué dans les instructions #undef .

La directive #undef est généralement associée à une #define directive pour créer une région dans un programme source dans lequel un identificateur a une signification particulière. Par exemple, une fonction spécifique du programme source peut utiliser des constantes manifestes pour définir les valeurs spécifiques à l'environnement qui n'affectent pas le reste du programme. La directive #undef fonctionne également avec la directive pour contrôler la #if compilation conditionnelle du programme source. Pour plus d’informations, consultez les directives #if, #elif, #else et #endif.

Dans l’exemple suivant, la directive #undef supprime les définitions d’une constante symbolique et d’une macro. Notez que seul l'identificateur de la macro est donné.

#define WIDTH 80
#define ADD( X, Y ) ((X) + (Y))
.
.
.
#undef WIDTH
#undef ADD

Section spécifique à Microsoft

Les macros peuvent être non définies à partir de la ligne de commande à l’aide de l’option /U , suivie des noms de macros à non défini. L’effet de l’émission de cette commande équivaut à une séquence d’instructions #undef de nom de macro au début du fichier.

FIN de la section spécifique à Microsoft

Voir aussi

Directives de préprocesseur