Недавно обнаружил интересную особенность препроцессора 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.