На этом шаге мы познакомимся с внешними глобальными объектами.
Описания внешних данных располагаются в любом месте программного модуля вне определения функций. Описания вида:
<спецификация_типа> <спецификация_данных>; или extern <спецификация_типа> <спецификация_данных>;
указывают на глобальные внешние данные, т.е. такие, которые могут использоваться во всех модулях программы, даже отдельно откомпилированных.
В этом случае где-либо во внешних определениях одного из модулей должно быть расположено определение глобального объекта, т.е. в его описании должен быть опущен класс памяти extern.
Пример. Понятно, что приведенная программа должна напечатать a=6.
#include <iostream.h> int a; void main () { extern int a; void P(); /* ----- */ a = 6; P(); } /* --- */ void P() { extern int a; /* ------------ */ cout << "a=" << a << endl; }
Результат работы программы:
a=6
На следующем шаге мы познакомимся с внешними статическими
объектами.