我应该使用#include <file.h> 还是“file.h”?

Gam*_*Gam 3 c include

有两种方法可以在 C 中包含文件:

#include <headerpath/header.h>
Run Code Online (Sandbox Code Playgroud)

或者

#include "headerpath/header.h"
Run Code Online (Sandbox Code Playgroud)

第一个将使用编译器已知的目录查找文件,因此我们可以在不知道它们在哪里的情况下包含标准文件。第二种方法将仅使用引号之间的路径来查找文件。(如果搜索失败,编译器会尝试第一种方式)。

我们有可能将一个或多个目录添加到编译器知道的目录列表中(第一种方式)。例如使用 gcc 我们可以-I选择。

所以最后,下面这两个代码是等价的(path_to_header 是一个目录):

1)

#include "path_to_header/header.h"

int     main(void)
{
    return (0);
} // Compiling with : gcc main.c
Run Code Online (Sandbox Code Playgroud)

2)

#include <header.h>

int     main(void)
{
    return (0);
} // Compiling with : gcc main.c -I path_to_header
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:以我自己的头文件为例,我应该使用 1) 还是 2) ?为什么 ?也许这只是个人选择?是否有不同的情况需要了解?

谢谢阅读 :)

编辑:我不是在寻找这两种方式之间的区别(我想我已经按照我的解释理解了它们,感谢这篇文章),我想知道是否有一些特殊情况需要了解,也许用于小组工作或使用同一程序的不同编译器......也许我不知道如何表达我的想法(或者这是一个没有真正答案的愚蠢问题),我必须尝试知道:)。

bba*_*iee 5

对于标准库的头文件(可能是预编译的)使用:

#include <stdio.h>
Run Code Online (Sandbox Code Playgroud)

对于项目的标题,请使用:

#include "project/header.h"
Run Code Online (Sandbox Code Playgroud)

在命令行上使用选项 -I 获取其他库。