Anulación de la sustitución de macros (#undef)

Las sustituciones registradas con #define pueden deshacerse si ya no son necesarias tras un determinado fragmento de código. Para ello se utiliza la directiva #undef.

#undef macro_identifier

Ello es útil en especial si necesita definir la misma macro de diferentes maneras en distintas partes del código. Si el identificador especificado en #define ya ha sido registrado en alguna línea de código anterior (por otra directiva #define ), entonces la antigua definición se sustituye por la nueva, y el preprocesador genera la advertencia «redefinición de macro». El uso de #undef evita el aviso al tiempo que indica explícitamente la intención del programador de no utilizar una determinada macro más adelante en el código.

#undef no puede anular la definición de macros predefinidas.