我找到了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/