这个问题已经在这里有了答案:
已关闭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/