preprocessor#include
指令确实如其名所示,它实际上是包含指令位置处的文件。
简单的例子:假设我们有文件,第一头文件名为a.h
// Our class
class A
{
// Stuff for the class
};
// End of the class
然后源文件a.cpp
:
// Include header file
#include "a.h"
// Header file included
int main()
{
// Code
}
预处理器生成单文件看起来像
// Include header file
// Our class
class A
{
// Stuff for the class
};
// End of the class
// Header file included
int main()
{
// Code
}
这个包含是递归的,所以如果头文件包含另一个头文件,那么其他头文件也将被包含。
由预处理器生成的源文件称为translation unit,它是编译器实际看到的内容。
以上是在现代预处理器是如何工作的简单化,虽然它可以单独运行,以创建一个预处理的源文件,这是比较常见的预处理器是编译器简化分析过程的一部分。
您还应该注意您使用的术语不正确。一个库可以(通常是)具有一个或多个头文件,这些头文件在编译源代码时使用。然后一个库经常(但不总是)包含一个特殊的库文件链接与编译器创建的目标文件。
一个没有链接库的库叫做头只有库。
'B'是否使用任何来自''(即直接而不是'A')的东西?如果是这样,那么是的,“包括你使用的东西” - 它使代码库对包含更改更加强大。 –
Niall