Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОИВТ_Ч1.doc
Скачиваний:
8
Добавлен:
07.11.2018
Размер:
1.27 Mб
Скачать

Приложение 6

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

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

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

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

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

// другом файле (в файле second.с)

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

{

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

}

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

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

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

Объявление extern int а,b можно поместить как внутри, так и вне функций (например функции main() ). При объявлении вне функции переменные а и b будут видимы во всем модуле first.с. Если оператор extern int a,b помещен внутри функции main(), то переменные будут видимы только внутри этой функции.

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

Св. план 1999, поз. 93

Учебное издание

Авторы: Бахирев Андрей Владимирович,

Живицкая Елена Николаевна,

Комличенко Виталий Николаевич,

Соколов Сергей Александрович,

Синицын Александр Григорьевич.

МЕТОДИЧЕСКОЕ ПОСОБИЕ

И УЧЕБНЫЕ МАТЕРИАЛЫ

по курсу

«Основы информатики и вычислительной техники»

для студентов экономических специальностей

заочной формы обучения

в 2-х частях

Часть 1

Редактор Е.Н. Батурчик

Подписано в печать Формат 60х84 1/16.

Бумага Печать офсетная. Усл. печ. л.

Уч.-изд. л. 4,6. Тираж 120 экз. Заказ

Белорусский государственный университет информатики и радиоэлектроники

Отпечатано в БГУИР. Лицензия ЛП №156. 220027, Минск, П. Бровки, 6

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