Jer*_*fin 14

使用<whatever>系统标题,并"whatever"为自己的头.

不同之处在于,当它包含在引号中时,编译器将查找本地目录,但是<>,它不会.如果你想获得技术,C标准并不能保证,但它实际上是所有编译器的工作方式.


phi*_*mue 5

""在当前文件的路径中搜索. <>搜索全局包含路径.

编辑:您要求绝对路径和相对路径.

假设您有一个文件结构如下:

folderX
 -fileX.a
 -fileX.b
 -folderX.Y
  -fileX.Y.a
  -fileX.Y.b
 -folderX.Z
  -fileX.Z.a
Run Code Online (Sandbox Code Playgroud)

然后,绝对路径fileX.Z.a将是folderX/folderX.Z/fileX.Z.a,假设这folderX是可用的最顶层目录.fileX.Z.a相对于eg 的相对路径fileX.a只是部分folderX.Z/fileX.Z.a,即你在fileX.a谎言所在的目录中启动路径.


ani*_*haw 5

#include <file>
Run Code Online (Sandbox Code Playgroud)

此变体用于系统头文件。它在系统目录的标准列表中搜索名为 file 的文件。您可以使用`-I' 选项将目录添加到该列表中。

#include "file"
Run Code Online (Sandbox Code Playgroud)

此变体用于您自己程序的头文件。它首先在包含当前文件的目录中搜索名为 file 的文件,然后在用于 .

的参数#include,无论是用引号还是尖括号分隔,其行为都类似于字符串常量,因为无法识别注释,并且不会扩展宏名称。因此,#include 指定包含名为“x/*y”的系统头文件。

但是,如果文件名中出现反斜杠,则它们被视为普通文本字符,而不是转义字符。不处理适用于 C 中字符串常量的字符转义序列。

参考