Я изучал язык программирования ANSI C, и он говорит во введении:Являются ли глобальные переменные переменными C?
«Локальные переменные обычно« автоматически »или создаются заново при каждом вызове».
Я предполагаю, что выделение и освобождение переменных работают с логикой фрейма стека java. Так же глобальные переменные автоматические тоже? Они попали бы и вышли из фрейма стека намного меньше, чем локальные переменные, так как они входят в объем всего файла .c. Я не знаю, как работает объем переменных, которые вы вызываете из других файлов.
глобальные переменные имеют фиксированный адрес, они не являются автоматическими. Они выделяются в начале программы и остаются таким образом в течение всего исполнения. –
Нет. Объекты области видимости имеют статическую продолжительность хранения. – EOF
Нет: переменные, определенные внутри функции без ключевых слов 'static' или' register' (или 'extern'), являются переменными' auto'. Теоретически они могут иметь префикс ключевого слова 'auto'. Вы должны быть застрелены, если вы действительно добавите ключевое слово (свидетель C++ полностью принял его за совершенно другую цель) - и если вы встретите ключевое слово в произведении C, вы должны взять человека, который написал 'auto' вне пролить и заставить их покаяться в своих злых путях. –