c语言布尔类型赋值给整型,C语言的布尔类型(_Bool)【转】

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

1. 我们自己定义的“仿布尔型”

在C99标准被支持之前,我们常常自己模仿定义布尔型,方式有很多种,常见的有下面两种:

view plaincopy to clipboardprint?

/* 第一种方法 */

#define TRUE 1

#define FALSE 0

/* 第二种方法 */

enum bool{false, true};

2. 使用_Bool

现在,我们可以简单的使用 _Bool 来定义布尔型变量。_Bool类型长度为1,只能取值范围为0或1。将任意非零值赋值给_Bool类型,都会先转换为1,表示真。将零值赋值给_Bool类型,结果为0,表示假。 下面是一个例子程序。

view plaincopy to clipboardprint?

#include 

#include 

int main(){

_Bool a = 1;

_Bool b = 2;    /* 使用非零值,b的值为1 */

_Bool c = 0;

_Bool d = -1;   /* 使用非零值,d的值为1 */

printf("a==%d,  \n", a);

printf("b==%d,  \n", b);

printf("c==%d,  \n", c);

printf("d==%d,  \n", d);

printf("sizeof(_Bool) == %d  \n", sizeof(_Bool));

system("pause");

return EXIT_SUCCESS;

}

运行结果如下:(只有0和1两种取值)

view plaincopy to clipboardprint?

a==1,

b==1,

c==0,

d==1,

sizeof(_Bool) == 1

3. 使用stdbool.h

在C++中,通过bool来定义布尔变量,通过true和false对布尔变量进行赋值。C99为了让我们能够写出与C++兼容的代码,添加了一个头文件。在gcc中,这个头文件的源码如下:(注,为了清楚,不重要的注释部分已经省略)

view plaincopy to clipboardprint?

/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.

This file is part of GCC.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值