2009-10-22 172 views

回答

4

不,没有区别。

你也可以有

#include "../thisdir/test.h" 

而且这将是相同的

+0

如果通过 – 2009-10-22 11:02:31

+0

重命名目录,则必须更改所有#includes如果我做了“../../thisdir/test.h”,那将是一场噩梦:) – Tom 2009-10-22 11:05:04

1

按照C标准,是没有区别的:编译器到达指定他们是如何搜索。实际上,对于我所知道的任何实现,不应该有任何区别。

-1

在我看来有一个重要的区别。

#include "test.h"的情况下,使用选项-I在指定给编译器的所有目录中搜索包含文件。

#include "./test.h"的情况下,仅使用引用文件的驻留目录。

+0

Isnt是-I选项用于将“标准”目录添加到包含路径(即,将在角度支架上扫描的目录包括) – Tom 2009-10-22 11:10:16

+0

@Tom,假设我们正在讨论gcc,-I指定要搜索“”和“ >包括。您可以使用-isystem指定只应搜索尖括号的路径。 – 2009-10-22 11:20:15

+1

不正确。两者仍将搜索所有目录。在查看以-I – sep 2009-10-22 11:37:31

1

预处理器将对这两种样式进行相同处理。标准做法是

#include "test.h" 

并将include文件路径作为选项传递给编译器。 (例如,GCC的-I选项)。这使得更改头文件的位置变得很容易。您只需在项目的make文件中进行一次更改即可。