关于文件路径

在c2dx的项目中,发现工程发现基本每个库都加入了 附加包含路径。
然后在代码中很省事的直接调用类名 引用文件
比如 a 目录下 包含 b,c 目录 。 b 目录下有类文件 test_b.h c 目录下有类人间 test_c.h , 然后工程中直接把 a/b,a/c 的目录 添加在附加包含路径中,
这样test_b.h 中 引用 test_c.h 只需要 include “test_c.h”,
未添加附加包含目录 的做法应该是 include “…/c/test_c.h”

现在搞不懂为什么 2dx 官方会这么做(本人单纯接触C++ 不久)
至于这样做可能处于一些原因: 跨平台的类文件, 直接替换 附加包含路径很方便的实现全部文件的替换同时不用改源码。

但是2dx基本把我们能看见的所有目录路径都 添加进 附加包含路径中,所以有些疑问:
1: 如果这样搞, 那为什么当初还去分目录, 全部放一个文件下面不就了事。
2: 如果不同目录下有相同类名的文件,那么不是有歧义(java 引用类是用的全路径,可以区别不同目录下相同类名文件)

在用官方的版本 打包wp时,需要手动导入liblua的库,然后就是一大堆需要包含的路径,基本把所有的目录的路径都包含进库,仔细一想这不等于整个项目都放在了一个目录下面吗?那分尼玛这多目录结构出来干毛。

恕我愚昧,请指点一下