当我在个人C和C++项目上工作时,我通常把file.h
和file.cpp
放在同一个目录中,然后file.cpp
可以用#include "file.h"
指令引用file.h
.
然而,通常会发现库和其他类型的项目(如linux内核和freeRTOS),其中所有.h
个文件都放在一个include/
目录中,而.cpp
个文件保留在另一个目录中.在这些项目中,.h
个文件也包含在#include "file.h"
个文件中,而不是我希望的#include "include/file.h"
个文件中.
我对这一切有几个问题:
- 这种文件 struct 组织的优点是什么?
- 为什么
#include "file.h"
中包含include/
中的.h
个文件,而不是#include "include/file.h"
个?我知道真正的诀窍是在一些Makefile中,但是这样做真的比(用代码)清楚地说明我们要包含的文件实际上在include/
目录中更好吗?