русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Статические переменные


Дата добавления: 2015-01-16; просмотров: 556; Нарушение авторских прав


Статические переменные представляют собой третий класспамяти, в дополнении к автоматическим переменным и EXTERN, скоторыми мы уже встречались. Статические переменные могут быть либо внутренними, либовнешними. Внутренние статические переменные точно так же,как и автоматические, являются локальными для некоторой фун-кции, но, в отличие от автоматических, они остаются сущест-вовать, а не появляются и исчезают вместе с обращением кэтой функции. это означает, что внутренние статические пере-менные обеспечивают постоянное, недоступное извне хранениевнутри функции. Символьные строки, появляющиеся внутри функ-ции, как, например, аргументы PRINTF , являются внутреннимистатическими. Внешние статические переменные определены в остальнойчасти того исходного файла, в котором они описаны, но не вкаком-либо другом файле. Таким образом, они дают способскрывать имена, подобные BUF и BUFP в комбинацииGETCH-UNGETCH, которые в силу их совместного использованиядолжны быть внешними, но все же не доступными для пользова-телей GETCH и UNGETCH , чтобы исключалась возможность конф-ликта. Если эти две функции и две переменные объеденить водном файле следующим образом STATIC CHAR BUF[BUFSIZE]; /* BUFFER FOR UNGETCH */STATIC INT BUFP=0; /*NEXT FREE POSITION IN BUF */ GETCH() {...} UNGETCH() {...} то никакая другая функция не будет в состоянии обратиться кBUF и BUFP; фактически, они не будут вступать в конфликт стакими же именами из других файлов той же самой программы. Статическая память, как внутренняя, так и внешняя, спе-цифицируется словом STATIC , стоящим перед обычным описани-ем. Переменная является внешней, если она описана вне какойбы то ни было функции, и внутренней, если она описана внутринекоторой функции. Нормально функции являются внешними объектами; их именаизвестны глобально. возможно, однако, объявить функцию какSTATIC ; тогда ее имя становится неизвестным вне файла, вкотором оно описано. В языке "C" "STATIC" отражает не только постоянство, нои степень того, что можно назвать "приватностью". Внутренниестатические объекты определены только внутри одной функции;внешние статические объекты /переменные или функции/ опреде-лены только внутри того исходного файла, где они появляются,и их имена не вступают в конфликт с такими же именами пере-менных и функций из других файлов. Внешние статические переменные и функции предоставляютспособ организовывать данные и работающие с ними внутренниепроцедуры таким образом, что другие процедуры и данные немогут прийти с ними в конфликт даже по недоразумению. Напри-мер, функции GETCH и UNGETCH образуют "модуль" для ввода ивозвращения символов; BUF и BUFP должны быть статическими,чтобы они не были доступны извне. Точно так же функции PUSH,POP и CLEAR формируют модуль обработки стека; VAR и SP тожедолжны быть внешними статическими.


<== предыдущая лекция | следующая лекция ==>
Область действия | Регистровые переменные


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.093 сек.