Шаг 52.
Внешние глобальные объекты (extern)

    На этом шаге мы познакомимся с внешними глобальными объектами.

    Описания внешних данных располагаются в любом месте программного модуля вне определения функций. Описания вида:

    <спецификация_типа> <спецификация_данных>;
        или
    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

   


Замечание. Порядок компиляции отдельных модулей программы не имеет значения для областей действия глобальных внешних объектов.


    На следующем шаге мы познакомимся с внешними статическими объектами.


Предыдущий шаг Содержание Следующий шаг