Программирование для карманных компьютеров - Владимир Волков 19 стр.


Препроцессор и заголовочные файлы

Файлы заголовков

Файлы заголовков предназначены для хранения определений, которые одновременно применяются в нескольких единицах компиляции, и для объявления имен, которые должны быть видимы более чем в одном модуле программы. В файлах заголовков также объявляются имена и функции, реализация которых находится в бинарных файлах. Использование заголовочных файлов сокращает размер исходных текстов программы, поскольку в сами файлы исходных текстов вставляются только ссылки на заголовочные файлы (при помощи директивы #include). Эти ссылки заменяются текстом заголовочного файла в процессе работы препроцессора.

Какая информация может быть помещена в файлы заголовков? Строго говоря, разработчик может помещать в эти файлы любую информацию, поскольку сами файлы после работы препроцессора просто вставляются в основной файл на место директивы #include. Список хранящихся в этих файлах данных приведен ниже.

1. Объявления функций, которые могут быть использованы в нескольких модулях.

2. Описания классов.

3. Описания внешних переменных.

4. Определения макросов.

5. Определения типов, доступных для всего проекта.

Использование заголовочных файлов и функционирование препроцессора тесно связаны. Какие же директивы для управления работой препроцессора могут быть включены в исходные файлы и в файлы заголовков? Это показано в следующем примере.

Упражнение 4.7

1. Создать простое приложение и сохранить его с именем AdvancedCPP.

2. На вкладке FileView отыскать файл newres.h и двойным щелчком открыть его в редакторе кода. Поскольку этот файл содержит в себе множество директив препроцессора, он послужит хорошей иллюстрацией к их описанию.

Директива #include задает включение в текст данного файла текста другого файла, имя которого указано после директивы. В файле newres.h есть несколько директив #include.

#include <commctrl.h>

Назад Дальше