【发布时间】:2021-01-13 11:05:14
【问题描述】:
我有一个带有src 和include 目录的项目。编译时,我通过-I 选项(gcc -Iinclude ...)传递include 目录。
我应该使用双引号 (") 还是尖括号 (<) 来包含我自己的头文件?
我试图寻找答案,发现这两个相互矛盾的陈述:
- 通过双引号包含相对于 c 文件的头文件。其他所有内容(包含路径中的头文件)都带有尖括号。 -> 因此使用尖括号
- 包括带尖括号的标准标题。其他所有内容都带有双引号。 -> 因此使用双引号
在我看来,陈述 2 更清楚。当包含一个带双引号的文件时,最明显的是它是我自己的标题。
我应该使用引号还是括号来包含我自己的头文件? The C standard allows both possibilities。那么最佳做法是什么?
【问题讨论】:
-
“两个相互冲突的陈述”——不过,它们似乎并不冲突。他们都说你应该用双引号包含你的标题(假定它是你项目的一部分,因此相对于 C 文件),以及其他所有内容,包括标准标题, - 用尖括号。
-
这个声明措辞很不幸。与您的 c 文件相关的意思是将其包含在
#include "../include/header.h"中。所以声明 1 会说我应该用尖括号括起来 -
选择是一种风格偏好。而且,与所有风格偏好一样,存在惯例和相互冲突的阵营。使用双引号。