#Include также означает использование - PullRequest
0 голосов
/ 13 августа 2011

Интересно, означает ли #include также «использование».Если нет, скажите, пожалуйста, что будет делать компилятор с дополнительными файлами, включенными функциями?Если да, значит ли это, что их память выделена в выходном PE?

Ответы [ 3 ]

7 голосов
/ 13 августа 2011

#include "file.h" говорит препроцессору открыть file.h и объединить содержимое этого файла с текущим файлом, в котором вы пишете #include "file.h".

То есть, если у вас есть два файла:

//file.h
extern int x;

//file.cpp
#include "file.h"

int x;
void f()
{
    x = 10;
}

Затем препроцессор копирует содержимое file.h в file.cpp как:

extern int x; //came from file.h

int x;
void f()
{
    x = 10;
}
1 голос
/ 13 августа 2011

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

Таким образом, в большинстве случаев включаемые файлы представляют собой заголовочные файлы .Они используются для объявления функций, макросов, классов, внешних переменных;так что вы можете включить файл заголовка (например, file.h) в несколько исходных файлов (например, src1.c, src2.c), и в обоих источниках у вас будет один и тот же набор функций / классов / внешних функций.

0 голосов
/ 13 августа 2011

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

#include <header.h>
#include <inlines.inl>
#include "testcode.cpp"
...