C头文件是否只能指定另一个头文件的名称

时间:2016-02-20 10:56:26

标签: c

我在github中找到pacman project,其中文件conf.c包含头文件#include "ini.h",其中ini.h只包含一行(即没有#include语句):

// ini.h

../common/ini.c

我以前从未见过有人这样做过!边缘似乎有点粗糙/粗糙。我的问题是:

  • 这是合法的C吗?
  • 可移动吗?
  • 是推荐吗?

我会假设所有这些问题的答案都应该是否定的,但我可能正在学习新的东西......

  

修改

从答案中,我看到它是一个Linux符号链接。我想这意味着它不能移植到Windows,并且还会使在unix环境之外阅读变得更加困难。我还想象,出于上述原因,使用相对路径(或包含目录)而不是符号链接在这种情况下会是更好的做法...

2 个答案:

答案 0 :(得分:1)

src/pacman/ini.h是根据网站的符号链接。

符号链接包含目标文件所在位置的信息(路径名称),我想这是网站上显示的内容。

操作系统会将[info] SeleniumSpec: [info] Home page [info] - should redirect to kitten list *** FAILED *** [info] "http://localhost:9000/" did not start with substring "http://localhost:9000/kittens" (SeleniumSpec.scala:22) [info] - should show three dropdown lists of attributes in sorted order *** FAILED *** [info] 0 was not equal to 20 (SeleniumSpec.scala:28) [info] Run completed in 4 seconds, 585 milliseconds. [info] Total number of tests run: 2 [info] Suites: completed 1, aborted 0 [info] Tests: succeeded 0, failed 2, canceled 0, ignored 0, pending 0 [info] *** 2 TESTS FAILED *** [error] Failed tests: [error] org.preownedkittens.SeleniumSpec [error] (website/it:test) sbt.TestsFailedException: Tests unsuccessful [error] Total time: 19 s, completed 20-feb-2016 11:51:48 的访问权限重定向到../common/ini.h,这是正常的C代码。

答案 1 :(得分:0)

我没有看到任何理由。 include语句指示编译器将该行替换为所包含文件中的任何内容