[英]#include “windows.h” how does it work
当我以以下方式在交流程序中包含“ windows.h”时
#include "windows.h"
它编译良好。 据我所知,如果我们在头文件中加上“”,则编译器会在当前目录中搜索头文件。 那么我的程序如何在没有头文件的情况下进行编译?
#include
引用形式的处理方式是实现定义的。 该标准(ISO / IEC 9899:201x,6.10.2.3)指出,我重点强调:
形式的预处理指令
# include "q-char-sequence" new-line
导致将该指令替换为由定界符之间指定序列标识的源文件的全部内容。将以实现定义的方式搜索命名的源文件。如果不支持此搜索,或者搜索失败,伪指令将被重新处理,就像读取
# include <h-char-sequence> new-line
具有与原始指令相同的包含序列(包括>字符,如果有的话)。
因此,要回答该问题,您需要参考编译器的文档。
为了进行论证和说明,我们假设您使用MS编译器,因为没有指定使用哪个编译器。 MS编译器的文档以#include
的引用形式表示:
预处理器按以下顺序搜索包含文件:
- 与包含#include语句的文件位于同一目录中。
- 在任何先前打开的目录中,包括与打开文件相反的文件。 搜索从最后打开的包含文件的目录开始,然后继续搜索最先打开的包含文件的目录。
- 沿着每个/ I编译器选项指定的路径。
- 沿着INCLUDE环境变量指定的路径。
如果使用其他编译器,则需要参考编译器的文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.