Spec-Zone.ru › GCC 4 CPP

2.2 Операция включения

Директива ‘#include’ работает, направляя препроцессор C на сканирование указанного файла в качестве входных данных перед продолжением остальной части текущего файла. Вывод препроцессора содержит уже сгенерированный вывод, за которым следует вывод, полученный из включенного файла, за которым следует вывод, полученный из текста после директивы ‘#include’. Например, если у вас есть заголовочный файл header.h следующим образом,

char *test (void);

и главная программа под названием program.c, использующая заголовочный файл, например так,

int x;
#include "header.h"

int
main (void)
{
  puts (test ());
}

компилятор увидит тот же поток токенов, что и если бы program.c прочитал

int x;
char *test (void);

int
main (void)
{
  puts (test ());
}

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

Чтобы избежать путаницы, лучше, если заголовочные файлы содержат только полные синтаксические единицы — объявления или определения функций, объявления типов и т. д.

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

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/cpp/Include-Operation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API