Архив на категорию: '1.6. Структура программы и классы памяти'

1.6.1. Исходные файлы и объявление переменных

Обычная СИ-программа представляет собой определение функции main, которая для выполнения необходимых действий вызывает другие функции. Приведенные выше примеры программ представляли собой один исходный файл, содержащий все необходимые для выполнения программы функции. Связь между функциями осуществлялась по данным посредством передачи параметров и возврата значений функций. Но компилятор языка СИ позволяет также разбить программу на несколько отдельных [...]

1.6.2. Объявления функций

Функции всегда определяются глобально. Они могут быть объявлены с классом памяти static или extern. Объявления функций на локальном и глобальном уровнях имеют одинаковый смысл. Правила определения области видимости для функций отличаются от правил видимости для переменных и состоят в следующем. 1. Функция, объявленная как static, видима в пределах того файла, в котором она определена. Каждая [...]

1.6.3. Время жизни и область видимости программных объектов

Время жизни переменной (глобальной или локальной) определяется по следующим правилам. 1. Переменная, объявленная глобально (т.е. вне всех блоков), существует на протяжении всего времени выполнения программы. 2. Локальные переменные (т.е. объявленные внутри блока) с классом памяти register или auto, имеют время жизни только на период выполнения того блока, в котором они объявлены. Если локальная переменная объявлена [...]

1.6.4. Инициализация глобальных и локальных переменных

При инициализации необходимо придерживаться следующих правил: 1. Объявления содержащие спецификатор класса памяти extern не могут содержать инициаторов. 2. Глобальные переменные всегда инициализируются, и если это не сделано явно, то они инициализируются нулевым значением. 3. Переменная с классом памяти static может быть инициализирована константным выражением. Инициализация для них выполняется один раз перед началом программы. Если явная [...]