#include <stdlib.h>有什么作用?或“ stdlib.h”?

时间:2019-12-19 08:59:09

标签: c++ c header-files

C ++的新手,正试图了解#include的功能。我知道它是标题,但它如何工作?

我还看到有些人也编写了#include'stdlib.h',为什么会这样呢?我的意思是有区别吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

这个问题一定已经出现过。 (这暗示可能重复,也许需要一些研究?)

#include作为预处理程序指令,在编译之前包含头文件的内容。这里包含的意思是简单的代码复制粘贴,即简单地复制写在头文件(此处为stdio.h)中的内容或c ++代码并将其带入工作的cpp文件中。是的,只是简单的复制粘贴。

请注意,预处理器是编译器的一部分,该编译器执行初步操作,例如在此处包括文件,并且预处理器指令语句以#开头。 (与此相关的其他示例包括定义宏)

现在要区分< >" ",前者用于预定义的头文件或C库中包含的标准文件,因为它从标准目录中查找头文件库文件所在的位置。当标头文件是非标准的或C库中默认不存在标头文件时,通常使用后者。因为它从当前设置的目录中查找标头文件。

当然,您也可以将" "用于标准C库头,但是通常在定义自己的标准头版本时会这样做。

如果您或其他C ++程序员要编写stdlib头文件的代码,则当您包含<stdlib.h>时,相同的代码也将被带入文件。

另外,请注意,您可以使用<cstdlib>而不是<stdlib.h>,因为C的标头具有'.h'标头扩展名,等效的C ++库将在没有标头扩展名的情况下加上'c ',位于< >之间。 (例如{{1}的<cstring>

相关问题