我已經寫了一個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