我已经写了一个C的数据结构和函数的集合,其中一些使用_Bool数据类型。当我开始的时候,这个项目将变成纯粹的C.现在我正在研究使用一个基于C++的GUI工具包,并将后端代码放到一个库中。_Bool和bool:我如何解决使用_Bool的C库的问题?
然而,编译的C++ GUI时以下错误是由编译器所发射:
ISO C++ forbids declaration of '_Bool' with no type
我最初以为我可以搜索&替换_Bool
到bool
并创建:
/* mybool.h */
#ifndef MYBOOL_H
#define MYBOOL_H
typedef _Bool bool;
#endif /* MYBOOL_H */
然后在任何使用_Bool
#ifdef __cplusplus
extern "C" {
#else
#include "mybool.h"
#endif
/* rest of header... */
直到我意识到这将编译一个布尔(C _Bool)数据类型的库,并使用另一个(C++布尔)链接库。实际上,这可能并不重要,但从理论上讲,它可能确实存在(可能会有一些不太明确的系统,这样做会导致宇宙内部出现)。
我想我可以只使用一个int,并使用0作为false,使用1作为true,并使用类似于typedef int mybool
的typedef,但它看起来没有吸引力。
有没有更好的/惯用的/标准的方式来做到这一点?
做出该评论的答案,'布尔'是如何'_Bool'是如何正常使用。 – 2010-08-20 10:12:11
所以我不需要担心宇宙内外翻转? – 2010-08-20 10:41:21