Внешние объявления в С++

Любая функция автоматически видна во всех модулях программы. Если требуется ограничить область действия функции файлом, в котором она описана, используется модификатор static.

Для того чтобы сделать доступной в нескольких модулях переменную или константу, необходимо:
• определить ее ровно в одном модуле как глобальную;
• в других модулях объявить ее как внешнюю с помощью модификатора extern.

Другой способ — поместить это объявление в заголовочный файл и включить его в нужные модули. Все описания одной и той же переменной должны быть согласованы.

Пример описания двух глобальных переменных в файлах one.срр и two.cpp с помощью заголовочного файла my_header. h:
// my_header.h - внешние объявления
extern int а;
extern double b;
//
// оnе.срр
#include "my_header.h"
int a;
//
// two.cpp
#include "my_header.h"
double b;
Обе переменные доступны в файлах оnе.срр и two.cpp.

Если переменная описана как static, область ее действия ограничивается фай-лом, в котором она описана. При описании типа следует придерживаться правила одного определения, то есть тип, используемый в программе, должен быть определен ровно один раз.

Важно. Как правило, это делается в заголовочном файле, который затем подключается к модулям, использующим этот тип. Нарушение этого правила приводит к ошибкам, которые трудно обнаружить, поскольку компиляторы, как правило, не обладают возможностью сличать определения одного и того же типа в различных файлах.
Онлайн всего: 2
Гостей: 2
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте