Справочник по C/C++
#undef

Директива #undef удаляет определенное ранее имя макроса. Общая форма записи такова.

#undef имя_макроса

Например, в фрагменте программы

#define LEN 100
#define WIDTH 100

char array[LEN][WIDTH];

#undef LEN
#undef WIDTH

/* С этого момента идентификаторы LEN и WIDTH не
определены.
*/

идентификаторы LEN и WIDTH определены до тех пор, пока не встретятся соответствующие операторы #undef.