49
|
Jonathan Leffler · 技术社区 · 16 年前 |
![]() |
1
46
我更喜欢路径语法,因为它非常清楚头文件所属的名称空间或模块。
我几乎从不使用“.”语法,而是让我的项目包含指定正确的基本位置。 |
![]() |
2
26
问题在于
假设您正在使用包含路径运行编译器
此外,如果以后删除
我认为以下内容更可取:
|
![]() |
3
10
开始你的人生之路
提供一个示例总是很容易的,说明您的代码库在哪里包含错误,以及这会在哪里导致难以诊断的故障。但是,即使您的项目没有故障,如果您依赖绝对路径来指定彼此相对的文件,第三方也可能滥用该项目。 例如,考虑下面的项目布局:
您的_lib/include/foo/header1.h 包括 ? 让我们考虑两种选择:
在这种情况下,我强烈推荐选项2),理由如下。 针对其他答案中的一些论点:
|
![]() |
4
9
|
![]() |
5
2
将源树视为一个嵌套的名称空间,include路径允许您将目录拉入该名称空间的根目录中。然后,问题是为代码库形成一个逻辑名称空间,而不管代码在磁盘上是如何组织的。 我会避免这样的路径:
就我个人而言,我倾向于在我的项目include path中添加如下路径
这允许您将某种隐藏规则应用于
我倾向于完全合格
|
![]() |
6
2
|
![]() |
7
1
因为这样您就可以相对于项目的根目录放置文件,当您将其签入源代码管理,而另一个开发人员将其签出到其本地系统上的其他位置时,仍然可以工作。 |
![]() |
8
0
虽然通常我不喜欢那种包含路径样式的明显僵化,但它可以帮助避免此类问题。例如,静态库可以通过
|
![]() |
Daniel Viaño · 将函数移动到不同的文件 7 年前 |
|
Trojax · 编译多个。c和。h文件 7 年前 |
![]() |
Stevoisiak · 为什么#包含打破全局变量? 7 年前 |
![]() |
jaxonjma · 在另一个JSP中动态发送并包含JSP 7 年前 |