#include是否也意味着使用

时间:2011-08-13 10:09:37

标签: c++ include c-preprocessor

我想知道#include是否也意味着“使用”。如果没有,你能否告诉我编译器将对额外文件,包含的函数做什么?如果是,这是否意味着他们在输出PE中分配了他们的记忆?

3 个答案:

答案 0 :(得分:7)

#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 :(得分:1)

包含表示打开文件,该名称是include的参数,并且(虚拟地)将其文本放在当前文件中。编译器的工作方式与所有文件合并为单个文件的方式相同。

因此,在大多数情况下,包含的文件是header files。它们用于声明函数,宏,类,外部变量;所以你可以在几个源文件中包含一个头文件(例如file.h)(例如src1.csrc2.c),在这两个源中你将拥有相同的函数集/ classes / extern函数预定义。

答案 2 :(得分:0)

包含仅复制包含文件的内容作为编译的第一阶段。 (预处理器)。这通常是添加头文件,但也可以用于包含任何其他类型的文件。因此它通常用于添加带内联代码的文件。有时在开发代码时,您可能希望包含另一个包含代码的文件。

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