Найти в Дзене
Sea++

Нулевое значение макроса C/C++

Недавно обнаружил интересную особенность препроцессора C/C++. Если использовать ранее необъявленное имя в числовых операциях, то оно автоматически становится равным нулю:
#if UNDEFINED == 0 #error "UNDEFINED is 0" #endif error: #error "UNDEFINED is 0" #if UNDEFINED/UNDEFINED #endif error: division by zero in #if.

Недавно обнаружил интересную особенность препроцессора C/C++. Если использовать ранее необъявленное имя в числовых операциях, то оно автоматически становится равным нулю:


#if UNDEFINED == 0
#error "UNDEFINED is 0"
#endif

error: #error "UNDEFINED is 0"

#if UNDEFINED/UNDEFINED
#endif

error: division by zero in #if.