Kernighan, B. W. and Ritchie, D. M. "The 'C' Programming Language"; Chapter 26

26. Анахронизмы.

Так как язык "C" является развивающимся языком, в старых программахможно встретить некоторые устаревшие конструкции. Хотя большинствоверсий компилятора поддерживает такие анахронизмы, они в конце концовисчезнут, оставив за собой только проблемы переносимости.

В ранних версиях "C" для проблем присваивания использовалась форма=оп, а не оп=, приводя к двусмысленностям, типичным примером которыхявляется

 x = -1
где x фактически уменьшается, поскольку операции = и - примыкают другк другу, но что вполне могло рассматриваться и как присваивание -1 к x.

Синтаксис инициализаторов изменился: раньше знак равенства, с которогоначинается инициализатор, отсутствовал, так что вместо

 int x = 1;
использовалось
 int x 1;
Изменение было внесено из-за инициализации
 int f (1+2)
которая достаточно сильно напоминает определение функции, чтобысмутить компиляторы.