Откуда у вас странная привычка использовать макрос NULL
в чистом спецификаторе?
Использование NULL
в чистом спецификаторе не будет работать. Синтаксис чистого спецификатора: = 0
и только = 0
, больше ничего. Если он работал у вас раньше, это просто означает, что компилятор, который вы использовали ранее, определял макрос NULL
как обычный 0
. Таким образом, по стечению обстоятельств вы можете использовать = NULL
как чистый спецификатор при использовании этого компилятора.
Но в общем случае NULL
не определяется как простой 0
, и, как я уже говорил выше, = NULL
не имеет смысла в качестве чистого спецификатора. Она не будет работать. Это именно то, что вы наблюдаете в вашем случае.