История изменений
Исправление Vic, (текущая версия) :
Я кажется понял почему вы так пишете про глобальные переменные.
Если мы рассматриваем прикладную программу, написанную, например для обычного компьютера, то, да, в таких написанных нами программах глобальные переменные это зло. Просто потому, что код начинает «приростать» к таким переменным, а мы хотим, чтобы наш код можно было переиспользовать в других программах. Плюс не понятно, кто и когда меняет эти переменные (возникает неявность).
Однако, это не значит, что глобальных переменных нет. Например, всем известная «куча», это самая что ни на есть глобальная переменная, одна на всю программу. Просто мы все свои динамически созданные переменные помещаем внутри нее. Тоже самое касается и стека, его также можно рассматривать как одну большую глобальную переменную.
Сам код, тех функций, которые мы написали, который исполняется, тоже находит в одной глобальной «переменной» (область кода в адресном пространстве).
Все эти глобальные области, переменные и код, работающий с ними, за нас с вами создает компилятор во время компиляции программы. Он же определяет размеры и распределяет, что где будет находиться в адресном пространстве в момент выполнения программы. За что ему, компилятору, большая благодарность!
Исходная версия Vic, :
Я кажется понял почему вы так пишете про глобальные переменные.
Если мы рассматриваем прикладную программу, написанную, например для обычного компьютера, то, да, в таких написанных нами программах глобальные переменные это зло. Просто потому, что код начинает «приростать» к таким переменным, а мы хотим, чтобы наш код можно было переиспользовать в других программах. Плюс не понятно, кто и когда меняет эти переменные (возникает неявность).
Однако, это не значит, что глобальных переменных нет. Например, всем известная «куча», это самая что ни на есть глобальная переменная, одна на всю программу. Просто мы все свои динамически созданные переменные помещаем внутри нее. Тоже самое касается и стека, его также можно рассматривать как одну большую глобальную переменную.
Сам код, тех функций, которые мы написали, который исполняется, тоже находит в одной глобальной «переменной» (область кода в адресном пространстве).
Все эти глобальные области, переменные и код, работающий с ними, за нас с вами создает компилятор во время компиляции программы. Он же определяет размеры и распределяет, что где будет находиться в адресном пространстве в момент выполнения программы.