|
||||
|
1.6 Структура программы Программа на С++ обычно состоит из большого числа исходных файлов, каждый из которых содержит описания типов, функций, переменных и констант. Чтобы имя можно было использовать в разных исходных файлах для ссылки на один и тот же объект, оно должно быть описано как внешнее. Например: extern double sqrt(double); extern instream cin; Самый обычный способ обеспечить согласованность исходных файлов – это поместить такие описания в отдельные файлы, называемые заголовочными (или хедер) файлами, а затем включить, то есть скопировать, эти заголовочные файлы во все файлы, где нужны эти описания. Например, если описание sqrt хранится в заголовочном файле для стандартных математических функций math.h, и вы хотите извлечь квадратный корень из 4, можно написать: #include «math.h» //... x = sqrt(4); Поскольку обычные заголовочные файлы включаются во многие исходные файлы, они не содержат описаний, которые не должны повторяться. Например, тела функций даются только для inline-подставляемых функций (#1.12) и инициализаторы даются только для констант (#1.3.1). За исключением этих случаев, заголовочный файл является хранилищем информации о типах. Он обеспечивает интерфейс между отдельно компилируемыми частями программы. В команде включения include имя файла, заключенное в угловые скобки, например «math.h», относится к файлу с этим именем в стандартном каталоге (часто это /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 «stream.h» #include «header.h» void f() (* cout «„ prog_name «« «\n“; *) Скомпилировать и запустить программу вы можете например так: $ CC main.c f.c -o silly $ silly дурацкий, но полный $ |
|
||