在GitHub上查看不同的有趣项目时,我遇到了以下文件:
https://github.com/charliesome/slash/blob/master/src/lib/regexp.c
似乎他以与标准标题相同的方式包含他自己的文件:
#include <slash/lib/regexp.h>
而不是这样:
#include "slash/lib/regexp.h"
我猜他改变了包含路径以使其成为可能,但我的问题是:为什么?这种情况(包括你自己的头文件)不是引用语法吗?
答案 0 :(得分:1)
对于中等大小且特别是可安装项目的项目,将标题存储在项目根目录下的include/
单独目录中而不是C文件旁边通常更方便。
将此目录添加到包含路径后,<>
或""
的选择将成为一种风格 - ""
仅对相对路径是必需的,或者如果您通过以下方式添加包含目录-iquote
代替-I
,这并不是特别常见。
使用""
的论据是将标题明确标记为特定于项目。
使用<>
的一个参数是用户名和库代码中的头包含内容相同。
答案 1 :(得分:0)
只需更改Makefile中的包含路径,即可轻松更改项目的目录结构。例如,您可能已经开始使用myproj/src
中的所有标题,并且您现在希望为所有标题添加额外的myproj/include
文件夹。