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

<!--StartFragment -->

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

extern double sqrt(double);
extern instream cin;

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

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

Поскольку обычные заголовочные файлы включаются во многие исходные файлы, они не содержат описаний, которые не должны повторяться. Например, тела функций даются только для inline-подставляемых функций  и инициализаторы даются только для констант. За исключением этих случаев, заголовочный файл является хранилищем информации о типах. Он обеспечивает интерфейс между отдельно компилируемыми частями программы.

В команде включения include имя файла, заключенное в угловые скобки, например , относится к файлу с этим именем в стандартном каталоге (часто это /usr/include/CC); на файлы, находящиеся в каких-либо других местах ссылаются с помощью имен, заключенных в двойные кавычки.

Например:

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

включит math1.h из текущего пользовательского каталога, а math2.h из каталога /usr/bs.

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

// header.h
extern char* prog_name;
extern void f();

В файле main.c находится главная программа:


// main.c
#include \"header.h\"
char* prog_name = \"дурацкий, но полный\";
main()
{
f();
}


а файл f.c печатает строку:


// f.c
#include
#include \"header.h\"
void f()
{
cout << prog_name << \"\\n\";
}



Скомпилировать и запустить программу вы можете например так:


$ CC main.c f.c -o silly
$ silly
дурацкий, но полный
$



Опубликовал admin
23 Мар, Вторник 2004г.



Программирование для чайников.