Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C. Тема 1. Раздел 11

.pdf
Скачиваний:
18
Добавлен:
21.03.2016
Размер:
1.2 Mб
Скачать

Область видимости (область действия) имени – часть программы, в которой это имя определено и может использоваться для обращения к одному и тому же элементу

Область видимости переменных, определённых в функции, включая формальные параметры – тело функции

Область видимости внешней переменной

От точки её объявления в файле исходного текста

До конца файла исходного текста

Для доступа к внешней переменной до точки её объявления следует использовать ключевое слово extern

int a = 10;

int some_function( int i )

{

extern int b; return i + a + b;

}

int b = 20;

Объявление переменной, приводящее к выделению памяти

int i;

Описание переменной со ссылкой на её определение в другом месте без

объявления и выделения памяти extern int i;

Локальные переменные, объявленные как статические, не уничтожаются при возврате из функции

Статические переменные обеспечивают постоянное, недоступное извне хранение данных внутри функции

По умолчанию статические переменные инициализируются нулём

Синтаксис

static тип_переменной идентификатор;

int sum( int i )

{

static int s; s += i; return s;

}

void main()

{

printf( "sum( 1 ): %d\n", sum( 1 ) ); printf( "sum( 1 ): %d\n", sum( 1 ) ); printf( "sum( 1 ): %d\n", sum( 1 ) );

}

Внешние статические переменные ограничены по возможности использования только исходным файлом, в котором они описаны

Это возможность скрыть внешнюю переменную от функций из других файлов

По умолчанию функции являются внешними, как внешние переменные

При использовании ключевого слова static в определении функция становится статической

Её можно использовать только в файле исходного текста, в котором она определена

extern int some_function( int i );

void main()

{

some_function( 30 );

}

int some_function( int i )

{

return i++;

}

Может являться альтернативным вариантом передачи параметров в функцию и возврата из неё

Может использоваться для сохранения данных между вызовами функций

Не следует злоупотреблять использованием внешних переменных

Спасибо за внимание!

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]