这个问题已经在这里有了答案:




已关闭8年。






当我编写以下代码时,为什么编译器不会提示:

#include "stdio.h"

不应该这样吗
#include <stdio.h>

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

最佳答案

""<> 的区别不大。两者都在实现定义的位置 1、2 中搜索 header 。不同之处在于,如果搜索 "" 失败,则搜索就像使用 <> 一样。 (第 16.2 节)

基本上,这意味着如果 <> 找到具有特定名称的 header ,则 "" 不会找不到具有相同名称的 header 3。

1 对于两种形式,这些实现定义的位置不必相同。

2 不要求其中一个搜索库文件夹,另一个搜索TU 的文件夹。如果需要,编译器可以搜索整个文件系统,甚至可以用谷歌搜索。

3但是,这并不意味着它们总是找到相同的 header 。

关于c++ - 为什么#include "stdio.h"有效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13684424/

10-12 05:35