Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Preprocessor directive that removes the current definition of a constant or macro that was previously defined using the #define directive.
#undef identifier |
---|
Parameters
Item | Description |
---|---|
identifier |
Identifier of the constant or macro to remove the definition of. If you are undefining a macro, provide only the identifier, not the parameter list. |
Remarks
You can apply the #undef directive to an identifier that has no previous definition; this ensures that the identifier is undefined. Macro replacement is not performed within #undef statements.
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. 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. The #undef directive also works with the [) directive to control conditional compilation of the source program.
Constants and macros can be undefined from the command line using the /U option, followed by the identifiers to be undefined. This is equivalent to adding a sequence of #undef directives at the beginning of the source file.
Examples
The following example shows how to use the #undef directive to remove definitions of a symbolic constant and a macro.
#define WIDTH 80
#define ADD( X, Y ) (X) + (Y)
#undef WIDTH
#undef ADD