Почему смешивание деклараций и кода было запрещено до C99?

Я недавно стал ассистентом преподавателя университетского курса, который в основном преподает C. Курс стандартизирован для C90, в основном из-за широкой поддержки компилятора. Одна из очень запутанных концепций для новичков в C с предыдущим опытом работы с Java - это правило, согласно которому объявления переменных и код не могут смешиваться внутри блока (составного оператора).

Это ограничение было наконец снято с C99, но мне интересно: кто-нибудь знает, почему он вообще появился? Упрощает ли это анализ объема переменных? Позволяет ли это программисту указать, в каких точках выполнения программы стек должен увеличиваться для новых переменных?

Я предполагаю, что разработчики языка не добавили бы такое ограничение, если бы оно вообще не имело никакой цели.

40
задан RavuAlHemio 5 November 2011 в 23:58
поделиться