【发布时间】:2020-07-08 07:03:30
【问题描述】:
我使用 ANCI C 在 C 中编程,但布尔定义有问题。 我创建了一个只包含'''typedef enum { false, true } bool;'''的头文件bool.h。 问题是我有 2 个头文件,我们称它们为 a.h 和 b.h,其中包含这个 bool.h,因为它们都有返回 bool 的函数原型。 而且我还有另外一个头文件c.h,里面包含了a.h和b.h,导致了bool重定义的编译错误。 https://imgur.com/a/CUu897f
【问题讨论】:
-
使用包含/标题保护? en.wikipedia.org/wiki/Include_guard。或者更好的是,忘记“ANSI C”并使用标准 C,
#include <stdbool.h>。 -
我希望我能忘记 ANSI C,这是我为大学课程做的一个项目。还有谢谢你的头卫,我没听说过,但我不认为我被允许使用它......
-
世界上每个 C 程序员都对每个头文件使用头保护。当然你可以使用它们。
-
@Lundin Header guards 是这个问题应得的答案。将其发布为答案
-
好吧,我已经问过了,但我不允许使用包含保护...所以我需要一个不同的解决方案,但非常感谢您的帮助
标签: c boolean redefinition ansi-c