我只是在C中编写代码,结果发现它没有boolean / bool数据类型。我可以包含任何C库,以便能够返回boolean / bool数据类型吗?
答案 0 :(得分:66)
如果你有一个支持C99的编译器,你可以
#include <stdbool.h>
否则,如果您愿意,可以定义自己的。根据您的使用方式(以及您是否希望能够将代码编译为C ++),您的实现可能非常简单:
#define bool int
#define true 1
#define false 0
在我看来,你也可以使用int
并使用零来表示假和非零表示真。这就是它通常在C中完成的方式。
答案 1 :(得分:17)
实际上,C99有一个布尔数据类型,但是如果必须使用旧版本,只需定义一个类型:
typedef enum {false=0, true=1} bool;
答案 2 :(得分:3)
C99有bool
类型。要使用它,
#include <stdbool.h>
答案 3 :(得分:1)
作为James McNellis回答的替代方案,我总是尝试使用bool类型的枚举而不是宏:typedef enum bool {false=0; true=1;} bool;
。它更安全b / c它允许编译器进行类型检查并消除宏扩展竞争
答案 4 :(得分:0)
C99引入了_Bool
作为内在的纯布尔类型。无需#include
:
int main(void)
{
_Bool b = 1;
b = 0;
}
在真正的C99(或更高版本)兼容的C编译器上,上述代码应能完美编译。
答案 5 :(得分:0)
我们可以为此使用枚举类型。我们不需要库。 例如
enum {false,true};
false
的值为0,true
的值为1。
答案 6 :(得分:-1)
struct Bool {
int true;
int false;
}
int main() {
/* bool is a variable of data type – bool*/
struct Bool bool;
/*below I’m accessing struct members through variable –bool*/
bool = {1,0};
print("Student Name is: %s", bool.true);
return 0;
}