C语言中头文件搜索的两种模式


尖括号模式

通过尖括号包含的头文件,例如 #include ,默认会从标准系统目录搜索,具体的搜索路径依赖于目标系统,GCC是如何配置的以及GCC安装在哪里。可以通过cpp -v指令查看默认的搜索路径。

引号模式

通过引号包含的头文件,例如 #include "file",会首先从当前文件的目录开始搜索,然后再从标准系统目录搜索。

指定搜索目录

通过-Idir命令行选项,可以指定自定义的搜索目录。

对于引号模式,在搜索完当前目录之后,才会去搜索 dir 指定的目录,最后再去搜索标准系统目录。

对于尖括号模式,会先搜索 dir 指定的目录,接着再去搜索标准系统目录。

更加细致的控制搜索目录

如果想要只指定引号模式的搜索路径,可以使用-iquote,该选项只适用于引号模式。-I,-isystem,-idirafter 适用于两者。