Я пережил немного истории C, и я обнаружил, что в более ранних версиях C, как и в стандарте C89, обязательно объявлять переменные в начале блока.
Но я также обнаружил, что есть некоторые релаксации от стандартной спецификации C99, где переменная может быть объявлена где угодно до ее использования.
Мой вопрос: почему более ранние версии сделали это обязательным? мой упор делается на то, чтобы знать, были ли какие-либо технические трудности при разработке компилятора в те дни, что помешало им идентифицировать объявления в любой момент.
Кроме того, с точки зрения дизайна компилятора я понимаю, что с таким ограничением на C89 легко обрабатывать объявления переменных и использование с помощью промежуточного файла для хранения отображений. Но существуют ли методы, которые могут обрабатывать случай, не используя файл-посредник, скажем, какое-то хранилище на основе памяти?.