我想知道它们之间有什么区别
#include "stdio.h"
Run Code Online (Sandbox Code Playgroud)
和
#include <stdio.h>
Run Code Online (Sandbox Code Playgroud)
Jer*_*fin 14
使用<whatever>系统标题,并"whatever"为自己的头.
不同之处在于,当它包含在引号中时,编译器将查找本地目录,但是<>,它不会.如果你想获得技术,C标准并不能保证,但它实际上是所有编译器的工作方式.
""在当前文件的路径中搜索.
<>搜索全局包含路径.
编辑:您要求绝对路径和相对路径.
假设您有一个文件结构如下:
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谎言所在的目录中启动路径.
#include <file>
Run Code Online (Sandbox Code Playgroud)
此变体用于系统头文件。它在系统目录的标准列表中搜索名为 file 的文件。您可以使用`-I' 选项将目录添加到该列表中。
#include "file"
Run Code Online (Sandbox Code Playgroud)
此变体用于您自己程序的头文件。它首先在包含当前文件的目录中搜索名为 file 的文件,然后在用于 .
的参数#include,无论是用引号还是尖括号分隔,其行为都类似于字符串常量,因为无法识别注释,并且不会扩展宏名称。因此,#include 指定包含名为“x/*y”的系统头文件。
但是,如果文件名中出现反斜杠,则它们被视为普通文本字符,而不是转义字符。不处理适用于 C 中字符串常量的字符转义序列。
参考:
| 归档时间: |
|
| 查看次数: |
12292 次 |
| 最近记录: |