我想知道#include
是否也意味着“使用”。如果没有,你能否告诉我编译器将对额外文件,包含的函数做什么?如果是,这是否意味着他们在输出PE中分配了他们的记忆?
答案 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.c
,src2.c
),在这两个源中你将拥有相同的函数集/ classes / extern函数预定义。
答案 2 :(得分:0)
包含仅复制包含文件的内容作为编译的第一阶段。 (预处理器)。这通常是添加头文件,但也可以用于包含任何其他类型的文件。因此它通常用于添加带内联代码的文件。有时在开发代码时,您可能希望包含另一个包含代码的文件。
#include <header.h>
#include <inlines.inl>
#include "testcode.cpp"