Реферат: Препроцессор языка C.
подключения файлов.
Обычно это достигается путем заключения в условие всего содержимого
этого файла, как показано ниже:
#ifndef FILE_FOO_SEEN
#define FILE_FOO_SEEN
Сам файл
#endif /* FILE_FOO_SEEN */
Макрос 'FILE_FOO_SEEN' указывает на то, что файл уже однажды вкючался.
В подключаемых файлах пользователя макрос не должен начинаться с символа
'_'. В системных подключаемых файлах его имя не должно начинаться с символа
'__' во избежание возникновения конфликтов с программами пользователя. Каким
бы ни был файл, имя макроса должно содержать имя файла и некоторый
дополнительный текст во избежание вознкновения конфликтов с другими
подключаемыми файлами.
Препроцессор GNU C построен таким образом, что обработке подключаемого
файла он проверяет наличие определенных конструкций и наиболее рационально
их обрабатывает. Препроцессор специально отмечает полное вложение файла в
условие '#ifndef'. Если в подключаемом файле содержится директива '#include',
указывающая на обрабатываемый файл, или макрос в директиве '#ifndef' уже
определен, то обрабатываемый файл полностью игнорируется.
Существует также специальная директива, указывающая препроцессору, что
файл должен быть включен не более одного раза. Эта директива называется
'#pragma once'. Она использовалась в дополнение к директиве '#ifndef' и
в настоящее время она устарела и не должна прменяться.
В объектно ориентированном языке С существует модификация директивы
'#include', называемая '#import', которая используется для вкючения файла
не более одного раза. При использовании директивы '#import' вместо
'#include' не требуется наличия условных оборотов для предотвращения
многократной обработки файла.