#undef, directive (CC++/)#undef directive (C/C++)

Supprime (élimine) un nom créé précédemment avec #define.Removes (undefines) a name previously created with #define.

SyntaxeSyntax

#undef identificateur#undef identifier

NotesRemarks

La directive #undef supprime la définition actuelle de l' identificateur.The #undef directive removes the current definition of identifier. Par conséquent, les occurrences suivantes de identifier sont ignorées par le préprocesseur.Consequently, subsequent occurrences of identifier are ignored by the preprocessor. Pour supprimer une définition de macro à l’aide de #undef, attribuez uniquement l' identificateurde macro, et non une liste de paramètres.To remove a macro definition using #undef, give only the macro identifier, not a parameter list.

Vous pouvez également appliquer la directive #undef à un identificateur qui n’a pas de définition précédente.You can also apply the #undef directive to an identifier that has no previous definition. Cela garantit que l'identificateur n'est pas défini.This ensures that the identifier is undefined. Le remplacement de macro n’est pas effectué dans les instructions #undef .Macro replacement isn't performed within #undef statements.

La directive #undef est généralement associée à une #define directive pour créer une zone dans un programme source dans lequel un identificateur a une signification particulière.The #undef directive is typically paired with a #define directive to create a region in a source program in which an identifier has a special meaning. 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.For example, a specific function of the source program can use manifest constants to define environment-specific values that do not affect the rest of the program. La directive #undef fonctionne également avec la #if directive pour contrôler la compilation conditionnelle du programme source.The #undef directive also works with the #if directive to control conditional compilation of the source program. Pour plus d’informations, consultez les directives #if, #elif, #else et #endif.For more information, see The #if, #elif, #else, and #endif directives.

Dans l’exemple suivant, la directive #undef supprime les définitions d’une constante symbolique et une macro.In the following example, the #undef directive removes definitions of a symbolic constant and a macro. Notez que seul l'identificateur de la macro est donné.Note that only the identifier of the macro is given.

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

Section spécifique à MicrosoftMicrosoft Specific

Les macros peuvent être non définies à partir de la ligne de /U commande à l’aide de l’option, suivie des noms de macros à non définir.Macros can be undefined from the command line using the /U option, followed by the macro names to be undefined. L’effet de l’émission de cette commande est équivalent à une #undef séquence d’instructions de nom de macro au début du fichier.The effect of issuing this command is equivalent to a sequence of #undef macro-name statements at the beginning of the file.

FIN de la section spécifique à MicrosoftEND Microsoft Specific

Voir aussiSee also

Directives de préprocesseurPreprocessor directives