Scope of Macro Names (#undef)

A preprocessor undef directive causes the preprocessor to end the scope of a preprocessor definition.

A preprocessor #undef directive has the form:

>>-#--undef--identifier----------------------------------------><
 
 

If the identifier is not currently defined as a macro, #undef is ignored.

Example of #undef Directives

The following directives define BUFFER and SQR:

#define BUFFER 512
#define SQR(x) ((x) * (x))

The following directives nullify these definitions:

#undef BUFFER
#undef SQR

Any occurrences of the identifiers BUFFER and SQR that follow these #undef directives are not replaced with any replacement tokens. Once the definition of a macro has been removed by an #undef directive, the identifier can be used in a new #define directive.

Related References

IBM Copyright 2003