c - 定位头文件的规则

标签 c compiler-construction header-files include-path

当你写 #include "foo.h"我希望编译器首先检查执行包含(而不是当前目录)的文件的目录,如果没有找到,然后返回搜索路径列表,就像 #include <foo.h> 的情况一样。 .

除非指定绝对路径,#include "/foo.h" , 在这种情况下只需要检查绝对路径。

有没有规则不同的 C 编译器?

最佳答案

Kernighan & Ritchie 写道:

[#include "foo"] searches first in association with the original source file (a deliberately implementation-dependent phrase), and if that search fails, then as in the first form.

这意味着,不对报价的搜索策略做任何假设。但是,我遇到的所有编译器都共享首先在包含文件的路径中搜索的实践,如果找不到则回退到编译器的搜索路径。

关于c - 定位头文件的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7645024/

相关文章:

c - 尝试检索值时,将指针传递给函数会导致段错误

linker - 最终的可执行文件是否使用符号表来检查变量范围

if-statement - Bison 悬卡在其他地方

引用下面定义的结构的 C++ 头文件

java - C 和 Java 观察者模式

c - 通过 for 循环读取字符串时获取随机重复

c - vm_write 返回 (os/kern) 无效地址

haskell - AST > 1-arity 的免费 Monad?

c - Kaa ESP8266编译器错误

无法访问单独文件夹中的头文件