netlib.narod.ru< Назад | Оглавление | Далее >

4.5. Заголовочные файлы

Теперь представим себе, что компоненты программы-калькулятора имеют существенно большие размеры, и зададимся вопросом, как в этом случае распределить их по нескольким файлам. Программу main поместим в файл, который мы назовем main.c; push, pop и их переменные расположим во втором файле, который назовем stack.c; а getop — в третьем — getop.c. Наконец, getch и ungetch разместим в четвертом файле getch.c; мы отделили их от остальных функций, поскольку в реальной программе они будут получены из заранее скомпилированной библиотеки.

Существует еще один момент, о котором следует предупредить читателя, — определения и объявления совместно используются несколькими файлами. Мы бы хотели, насколько это возможно, централизовать эти объявления и определения так, чтобы для них существовала только одна копия. Тогда программу в процессе ее развития будет легче и исправлять, и поддерживать в рабочем состоянии. Для этого заголовочную информацию расположим в заголовочном файле calc.h, который будем по мере необходимости включать в другие файлы. (Директива #include описывается в параграфе 4.11.) В результате получим программу, файловая структура которой показана ниже:


Рис. 1. Файловая структура программы-калькулятора

Неизбежен компромисс между стремлением, чтобы в каждый файл включалась только та информация, которая ему необходима для работы, и тем, что на практике иметь дело с большим количеством заголовочных файлов довольно трудно. Для программ, не превышающих некоторого среднего размера, вероятно, лучше всего иметь один заголовочный файл, в котором собраны вместе все объекты, каждый из которых используется более чем в одном файле; так мы здесь и поступили. Для программ больших размеров потребуется более сложная организация с большим числом заголовочных файлов.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz