Автоматическая переменная, в определении которой присутствует служебное слово register, становится РЕГИСТРОВОЙ: транслятор по возможности стремится хранить ее в регистрах процессора, что увеличивает быстродействие выполняемых над ней операций:
{ register char *p; // С памятью нужно работать ...
определение переменной объявление переменной int a,B[20]={1,5,4,7}; extern int a,B[]; ... область действия ... ... область действия ...
Определение переменной должно производиться только в одном модуле, при трансляции которого она создается и в котором размещается. Соответствие типов переменных в определении и объявлениях транслятором не может быть проверено. Ответственность за это соответствие ложится целиком на программиста.
l Статические переменные. Имеют сходные с внешними переменными характеристики времени жизни и размещения в памяти, то есть создаются и инициализируются транслятором, существуют все время работы программы. Однако статические переменные имеют ограниченную область действия.
l Собственные статические переменные функции имеют синтаксис определения автоматических переменных, предваренный словом static .Область действия аналогична автоматическим - тело функции или блок. При рекурсивном вызове функции не дублируются. Назначение собственных статических переменных - сохранение значений, используемых функцией, между ее вызовами.
l Статические переменные, определенные вне функции, имеют область действия, ограниченную текущим модулем. Они переменные предназначены для создания собственных переменных модуля, которые не должны быть "видны" извне, чтобы не вступать в конфликт с одноименными внешними переменными в других модулях.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий