Я первый студент-информатик, и мой профессор сказал, что #define запрещен в отраслевых стандартах вместе с #if, #ifdef, #else и несколькими другими директивами препроцессора. Он использовал слово "запрещено" из-за неожиданного поведения.
Это точно? Если да, то почему?
Существуют ли, по сути, какие-либо стандарты, запрещающие использование этих директив?