一个C头文件可以只指定另一个头文件的名称吗

标签 c

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

//ini.h

../common/ini.c

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

  • 这是合法的 C 吗?
  • 它便携吗?
  • 值得推荐吗?

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

edit

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

最佳答案

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

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

操作系统会将对该 ini.h 的访问重定向到 ../common/ini.h ,这是一个普通的C代码。

关于一个C头文件可以只指定另一个头文件的名称吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35522231/

相关文章:

c - 访问二维结构数组上的值

c - %i 或 %d 更喜欢哪一个

c - 循环和微 Controller

c 字符串化和 __function__

c - 断言 - 段错误

c - 结构数组中的内存分配

c - c中如何比较栈和链表的元素?

c - 传递一个字符进行提示控制

c - 如何使用 "pointer to array 10 of int"?

c - 为什么这个粒子系统的能量不断增加?