"Мюррэй Хилл, Бьярн Страустрап. Язык С++" - читать интересную книгу автора

*q = t;
}

1.6 Структура программы

Программа на C++ обычно состоит из большого числа исходных
файлов, каждый из которых содержит описания типов, функций,
переменных и констант. Чтобы имя можно было использовать в разных
исходных файлах для ссылки на один и тот же объект, оно должно
быть описано как внешнее. Например:

- стр 31 -

extern double sqrt(double);
extern instream cin;

Самый обычный способ обеспечить согласованность исходных файлов -
это поместить такие описания в отдельные файлы, называемые
заголовочными (или хэдер) файлами, а затем включить, то есть
скопировать, эти заголовочные файлы во все файлы, где нужны эти
описания. Например, если описание sqrt хранится в заголовочном
файле для стандартных математических функций math.h, и вы хотите
извлечь квадратный корень из 4, можно написать:

#include
//...
x = sqrt(4);

Поскольку обычные заголовочные файлы включаются во многие исходные
файлы, они не содержат описаний, которые не должны повторяться.
Например, тела функций даются только для inline-подставляемых
функций (#1.12) и инициализаторы даются только для констант
(#1.3.1). За исключением этих случаев, заголовочный файл является
хранилищем информации о типах. Он обеспечивает интерфейс между
отдельно компилируемыми частями программы.
В команде включения include имя файла, заключенное в угловые
скобки, например , относится к файлу с этим именем в
стандартном каталоге (часто это /usr/include/CC); на файлы,
находящиеся в каких-либо других местах ссылаются с помощью имен,
заключенных в двойные кавычки. Например:

#include "math1.h"
#include "/usr/bs/math2.h"

включит math1.h из текущего пользовательского каталога, а math2.h
из каталога /usr/bs.
Здесь приводится очень маленький законченный пример программы, в
котором строка определяется в одном файле, а ее печать производится
в другом. Файл header.h определяет необходимые типы: