The #undef directive

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

Read syntax diagramSkip visual syntax diagram#undef directive syntax
 
>>-#--undef--identifier----------------------------------------><
 

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

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.