#undef
La directiva #undef quita la definición actual del nombre especificado. Todas las apariciones posteriores del nombre se procesan sin reemplazo.
#undef name
-
Nombre
-
Nombre que se va a quitar. Este valor es cualquier combinación de letras, dígitos y signos de puntuación válidos para el preprocesador de C/C++.
En este ejemplo se quitan las definiciones de los nombres distinto de cero y USERCLASS:
#undef nonzero
#undef USERCLASS