Cтраница 1
Автоматический период хранения могут иметь только переменные. Локальные переменные функции ( объявленные в списке параметров или в теле функции) обычно имеют автоматический период хранения. Ключевое слово auto объявляет переменные с автоматическим хранением явным образом. [1]
Переменные с автоматическим периодом хранения создаются при запуске блока, в котором они объявлены, существуют, пока блок активен, и разрушаются, когда блок завершает работу. Локальные переменные функции обычно имеют автоматический период хранения. [2]
Локальные переменные имеют автоматический период хранения по умолчанию, так что ключевое слово auto используется редко. Во всем последующем тексте мы будем называть переменные с автоматическим периодом хранения просто автоматическими переменными. [3]
Ключевое слово register может использоваться только с переменными, имеющими автоматический период хранения. [4]
Четыре спецификатора класса памяти могут быть разбиты на два типа по периоду хранения: автоматический период хранения и статический период хранения. Для объявления переменных с автоматическим периодом хранения служат ключевые слова auto и register. Переменные с автоматическим хранением создаются, когда управление получает программный блок, в котором они объявлены. Переменные этого типа существуют, пока блок активен, и уничтожаются, когда происходит выход из блока. [5]
Все доступные объекты имеют те же значения, что и во время вызова longjmp, за исключением значений объектов с автоматическим периодом хранения, локальных для функции, содержащей вызов соответствующего макроса setjmp, не относящихся к типу volatile и изменившихся между вызовами setjmp и longjmp; эти значения являются неопределенными. [6]
Четыре спецификатора класса памяти могут быть разбиты на два типа по периоду хранения: автоматический период хранения и статический период хранения. Для объявления переменных с автоматическим периодом хранения служат ключевые слова auto и register. Переменные с автоматическим хранением создаются, когда управление получает программный блок, в котором они объявлены. Переменные этого типа существуют, пока блок активен, и уничтожаются, когда происходит выход из блока. [7]
Переменные с автоматическим периодом хранения создаются при запуске блока, в котором они объявлены, существуют, пока блок активен, и разрушаются, когда блок завершает работу. Локальные переменные функции обычно имеют автоматический период хранения. [8]
Локальные переменные имеют автоматический период хранения по умолчанию, так что ключевое слово auto используется редко. Во всем последующем тексте мы будем называть переменные с автоматическим периодом хранения просто автоматическими переменными. [9]
Автоматический период хранения могут иметь только переменные. Локальные переменные функции ( объявленные в списке параметров или в теле функции) обычно имеют автоматический период хранения. Ключевое слово auto объявляет переменные с автоматическим хранением явным образом. [10]
Спецификатор класса памяти register может быть помещен перед объявлением автоматической локальной переменной, чтобы рекомендовать компилятору разместить переменную в одном из быстродействующих аппаратных регистров процессора. Компилятор может игнорировать объявление register. Ключевое слово register может использоваться только с переменными, имеющими автоматический период хранения. [11]
Статические массивы автоматически инициализируются нулями, если они явно не инициализированы программистом ( часть 1 из 2. [12] |
На рис. 6.11 показаны функция staticArraylnit с локальным массивом, объявленным static, и функция automaticArraylnit с автоматическим локальным массивом. Статический локальный массив, содержащийся в функции, инициализируется компилятором нулями. Функция выводит массив, прибавляет 5 к каждому его элементу и снова выводит массив. При втором вызове функции статический массив содержит значения, сохранившиеся со времени ее первого вызова. Функция automaticArraylnit также вызывается дважды. Функция выводит массив, прибавляет 5 к каждому его элементу и снова выводит этот массив. При втором вызове функции элементы массива снова инициализируются как 1, 2 и 3, поскольку массив имеет автоматический период хранения. [13]