Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ОИиП под ред Бусько.DOC
Скачиваний:
20
Добавлен:
11.05.2015
Размер:
732.67 Кб
Скачать

Использование глобальных переменных, объявленных вне файла

Ниже приведена простая программа на языке С, состоящая из двух файлов (модулей) – first.c (главный файл) и second.c:

// начало первого файла first.c

#include <stdio.h> // подключение библиотеки stdio.h

extern int a,b; // объявление переменных, объявленных в другом файле

// (в файле second.c)

void main(void) // основная функция main

{

printf(“a=%d b=%d\n”,a,b); // вывод значений переменных a,b

}

Во втором файле second.c должно присутствовать объявление и инициализация переменных, например, в виде:

int a=2,b=5; // объявление переменных a,b

Две глобальные переменные a и b типа int описаны вне функции в файле second.c. Следовательно, их имена являются глобальными в файле, т.е. они видимы для загрузчика языка С. Поскольку в файле first.c присутствует описание extern для этих переменных типа int, то компилятор разрешает использовать их в функциях first.c, например в main(). Объявление extern int a,b можно поместить как внутри, так и вне функций (например, функции main()). При объявлении вне функции переменные a и b будут видимы во всем модуле first.c. Если оператор extern int a,b помещен внутри функции main(), то переменные будут видимы только внутри этой функции.

Если перед описанием int a=2,b=5 в файле second.c поместить обозначение класса памяти static, то указанные переменные скрываются от загрузчика. Такие переменные известны только в пределах файла, в котором они объявлены. Хотя программа в файле first.c будет успешно оттранслирована (компилятор учтет описание extern), загрузчик не сможет уточнить адреса для внешних ссылок и выдаст соответствующее сообщение об ошибке.

Литература

  1. Березин Б.И., Березин С.Б. Начальный курс С и С++. М.: Диалог-МРТИ ,1999.288 с.

2.Керниган Б., Ритчи Д. Язык программирования С. М.: Финансы и статистика.,1992.271 с.

3.Касаткин А.И., Вольвачев А.Н. Профессиональное программирование на языке Си : Om Turbo –C k Borlano C++: Справ. пособие. –Мн.:Выш. шк.,1992. -240с.

4.Страуструп Б. Язык программирования С++. 2-е изд.:В 2т. Киев: Диа Софт,1993.

5.Фьюэр А. Задачи по языку СИ. М.: Финансы и статистика,1985.

6.Хэнкок Л.,Кригер М. Введение в программирование на языке СИ. М.: Радио и связь,1986.

7.Берри В.,Микинз Б. Язык СИ: введение для программистов. М.: Финансы и статистика,1988.

8.Уэйт М., Прама С., Мартин Д. Язык СИ. Руководство для начинающих. М.: Мир, 1988.

9.Больски М.Н. Язык программирования СИ. Справочник. М.: Радио и связь, 1988.

10.Юлин В.А., Булатова И.Р. Приглашение к СИ. Мн.: Выш. шк., 1990.

11. Уингер Р. Язык Турбо СИ. М.: Мир, 1991.

12.Романовская Л.М., Русс Т.В., Свитковский С.Г. Программирование в среде СИ для ПЭВМ ЕС. М.: Финансы и статистика,1992.

13.Бахирев А.В., Живицкая Е.Н., Комличенко В.Н., Соколов С.А. Методическое пособие для выполнения курсового проектирования по дисциплине «Основы информатики и вычислительной техники» для студентов специальности Э.01.03.00. Мн., 2000.

Св. план 2001, резерв