C ++的新手,正试图了解#include的功能。我知道它是标题,但它如何工作?
我还看到有些人也编写了#include'stdlib.h',为什么会这样呢?我的意思是有区别吗?
感谢您的帮助
答案 0 :(得分:2)
这个问题一定已经出现过。 (这暗示可能重复,也许需要一些研究?)
#include
作为预处理程序指令,在编译之前包含头文件的内容。这里包含的意思是简单的代码复制粘贴,即简单地复制写在头文件(此处为stdio.h)中的内容或c ++代码并将其带入工作的cpp文件中。是的,只是简单的复制粘贴。
请注意,预处理器是编译器的一部分,该编译器执行初步操作,例如在此处包括文件,并且预处理器指令语句以#
开头。 (与此相关的其他示例包括定义宏)
现在要区分< >
和" "
,前者用于预定义的头文件或C库中包含的标准文件,因为它从标准目录中查找头文件库文件所在的位置。当标头文件是非标准的或C库中默认不存在标头文件时,通常使用后者。因为它从当前设置的目录中查找标头文件。
当然,您也可以将" "
用于标准C库头,但是通常在定义自己的标准头版本时会这样做。
如果您或其他C ++程序员要编写stdlib头文件的代码,则当您包含<stdlib.h>
时,相同的代码也将被带入文件。
另外,请注意,您可以使用<cstdlib>
而不是<stdlib.h>
,因为C的标头具有'.h'标头扩展名,等效的C ++库将在没有标头扩展名的情况下加上'c ',位于< >
之间。 (例如{{1}的<cstring>
)