为什么#include"stdio.h"有效?

gex*_*ide 6 c++ include

可能重复:
#include <filename>和#include"filename"有什么区别?

编写以下内容时,编译器为什么不抱怨:

#include "stdio.h"
Run Code Online (Sandbox Code Playgroud)

不应该

#include <stdio.h>
Run Code Online (Sandbox Code Playgroud)

相反,因为stdio.h实际上存储在库文件夹中而不是存储在翻译单元的文件夹中?为什么它仍然有效?

R. *_*des 9

""和之间的区别<>并不大.两者都在实现定义的位置1,2中搜索头.不同之处在于,如果搜索失败 "",则搜索就像它正在使用一样<>.(§16.2)

基本上,这意味着如果<>找到具有特定名称的标头,""则无法找到具有相同名称的标头3.


1这两个表单的实现定义位置不必相同.

2不要求其中一个搜索库文件夹和另一个搜索TU的文件夹.允许编译器搜索整个文件系统,如果需要,甚至谷歌搜索它.

3但这并不意味着他们总能找到相同的标题.