Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;-#包括「;“文件名”;_C++_Include - Fatal编程技术网

C++ C++;-#包括「;“文件名”;

C++ C++;-#包括「;“文件名”;,c++,include,C++,Include,在这里,它提到了以下关于#包括“filename”: #include“filename”告诉编译器在中查找文件 包含源文件的目录 做#包括如果失败, 它的作用与角度相同 括号框 粗体字句子是什么意思 谢谢。虽然具体细节取决于实现,但有一些常见做法。在大多数常见的编译器中,默认情况下,使用引号#include“filename.h”搜索当前目录。使用尖括号#include搜索系统定义的库目录。它的意思是,如果当前目录没有您需要的文件,它将搜索系统目录 请注意,某些编译器可能不同,并且您的编译器本

在这里,它提到了以下关于
#包括“filename”

#include“filename”告诉编译器在中查找文件 包含源文件的目录 做#包括如果失败, 它的作用与角度相同 括号框

粗体字句子是什么意思


谢谢。

虽然具体细节取决于实现,但有一些常见做法。在大多数常见的编译器中,默认情况下,使用引号
#include“filename.h”
搜索当前目录。使用尖括号
#include
搜索系统定义的库目录。它的意思是,如果当前目录没有您需要的文件,它将搜索系统目录


请注意,某些编译器可能不同,并且您的编译器本身可能有更改这些目录的选项。还有一种可能性是系统头实际上不存在,但是编译器直接识别
#include
,以启用某些内置定义。

虽然具体细节取决于实现,但有一些常见做法。在大多数常见的编译器中,默认情况下,使用引号
#include“filename.h”
搜索当前目录。使用尖括号
#include
搜索系统定义的库目录。它的意思是,如果当前目录没有您需要的文件,它将搜索系统目录


请注意,某些编译器可能不同,并且您的编译器本身可能有更改这些目录的选项。还有一种可能性是系统头实际上不存在,但是编译器直接识别
#include
,以启用某些内置定义。

粗体位仅意味着,如果无法使用
找到引号中指定的文件“
方法,它将还原为
方法


我应该提到的是,它在哪里查找
include
文件实际上是不正确的。在这两种情况下(引号和尖括号),搜索位置都是由实现定义的

lex.header
部分:

这两种形式的头文件名序列都以实现定义的方式映射到头文件或16.2中指定的外部源文件名

16.2
部分如下:


#include
指令应标识可由实现处理的头文件或源文件

表单的预处理指令

# include < h-char-sequence> new-line
# include " q-char-sequence" new-line
导致将该指令替换为源文件的全部内容,源文件的全部内容由
分隔符之间的指定序列标识。将以实现定义的方式搜索命名的源文件。如果不支持此搜索,或者如果搜索失败,则将重新处理该指令,如同它已读取一样

# include < h-char-sequence> new-line
#包括新行
具有与原始指令相同的包含序列(包括
字符,如果有)


因此,语句
“。。。告诉编译器在包含源文件的目录中查找文件,执行“include…”
是错误的。在这两种情况下,查找文件的方式完全取决于实现

话虽如此,其余的都是正确的。如果
类型使用的方法找不到标题,则使用
类型使用的方法。这就是加粗的意思


您只需阅读特定实现的文档,就可以了解这些方法是什么。

粗体表示,如果无法使用
方法找到引号内指定的文件,它将还原为
方法


我应该提到的是,它在哪里查找
include
文件实际上是不正确的。在这两种情况下(引号和尖括号),搜索位置都是由实现定义的

lex.header
部分:

这两种形式的头文件名序列都以实现定义的方式映射到头文件或16.2中指定的外部源文件名

16.2
部分如下:


#include
指令应标识可由实现处理的头文件或源文件

表单的预处理指令

# include < h-char-sequence> new-line
# include " q-char-sequence" new-line
导致用源文件的全部内容替换该指令,源文件的全部内容由
分隔符之间的指定序列标识。以实现定义的方式搜索命名的源文件。如果不支持此搜索,或者搜索失败,则将重新处理该指令,就像它读取一样

# include < h-char-sequence> new-line
#包括新行
具有与原始指令相同的包含序列(包括
字符,如果有)


因此,语句
“…告诉编译器在包含执行#include…”的源文件的目录中查找文件是错误的。在这两种情况下,如何查找文件完全取决于实现

话虽如此,其余的都是正确的。如果
类型使用的方法没有找到标题,则使用
类型使用的方法。这就是所有粗体位的意思


您只需阅读特定实现的文档,就可以了解这些方法是什么。

+1对于迂腐,但实际上大多数人使用的系统都会遵循概述的规则。如果您想编写自己的标题,您必须依赖于假设
\include“myheader.h”“
将搜索当前目录。问题中粗体的句子是正确的!看到你说的那部分了吗