【发布时间】:2013-11-21 06:01:28
【问题描述】:
我知道如何编写 .h 文件并包含守卫。我想编写一个包含全局变量的新 bar123.h 文件。假设 bar123.c 不存在。
其他头文件,例如bar.h 将包含 bar123.h,以使全局变量在需要它们的地方可见。
一个问题是,如果 foo.c 包含 foo.h,而 foo.h 又包含 bar.h,而 bar.h 又包含 bar123.h,那么 foo.c 是否总是 包含 bar123.h?
另一个问题是,我应该如何修改 Makefile 和 Kbuild 文件?
我正在寻找一个简单的 hackish 解决方案。
【问题讨论】:
-
您可能已经意识到这一点,但以防万一:请记住,C #include preprosessor 指令只是将包含文件中的文本放入编译。没有花哨的“导入”语义,您只需将头文件复制粘贴到编辑器中的源代码中即可(我只知道一个例外,非标准 #pragma once )。
-
谢谢海德。我实际上还没有制作新的标题。现在只需粘贴'extern int baz;'分成多个头文件。编译良好,但在运行时我仍然收到“未知符号 baz”。 ('umac: Unknown symbol baz (err 0)' on the openwrt router serial terminal Tera Term if that help.)
-
我为您的评论写了一个答案,但您可能想更新问题... :)
-
谢谢海德。解决方案似乎并不容易。下次我可以试试。目前正在通过另一种方法。
标签: c include global-variables header-files kbuild