C语言中的TRUE和FALSE

C语言中的TRUE和FALSE

 

C99之前(C99中引入了_Bool),C语言没有内建的bool型变量,通常是使用宏来定义整型或字符型的常量来表示true和false(是的,可能会有人将字符型的常量定义为TRUE和FALSE,因为char型变量位域更紧凑,相对于int型会更节省空间),但通常都会使用int型。通常会使用#define或typedef来进行bool的定义,例如:#define TRUE      1(或者typedef int bool,甚至可以使用枚举,例如:enum bool {false,true};)。

这一切看着都挺不错的,解决了或者说看似满足了我们的需求,我们有了bool变量,真为1,假为0。但真的如此么?C语言中到底什么是真!任何非0值都被视为逻辑的“真”。我们定义的bool变量实际上没能够真正的表示逻辑的真与假。那么就需要注意一些细节了。很多C代码中都是满足逻辑真、假的,但真值有时候并不是1,例如函数库函数isupper()成功时返回的值就不一定是1。所以类似这种代码:if(isupper(ch) == TRUE),就是不可靠的(这种风格看似非常明确的样子,但实际上很糟糕)。

通常好的习惯是只在向bool变量赋值或作为函数参量及函数返回值的时候使用TRUE和FALSE,千万不要养成在比较中使用TRUE和FALSE的习惯。

还有一点,在C99中,因为_Bool型变量比较特殊,它只有true和false两个取值,C99标准要求实现中至少能够保存0和1两个值,所以在有的实现中它可能实际只占用1位空间,也有可能是1字节,这和具体实现有关。有个东西还是比较有趣的如果你在代码中使用宏#define _Bool int ,它是可以通过的。

  • 13
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C语言的return truefalse是用于表示函数返回值的两个常量。其true表示真,其值为1;false表示假,其值为0。在函数,当需要返回一个布尔值时,可以使用这两个常量来表示。例如: ``` bool isEven(int num) { if (num % 2 == 0) { return true; } else { return false; } } ``` 上面的代码,isEven函数用于判断一个数是否为偶数,如果是偶数,则返回true,否则返回false。在调用该函数时,可以根据返回值来进行相应的处理。 ### 回答2: 在C语言,return truefalse是两个非常重要的概念,它们通常用于判断语句的真假和执行结果。具体来说,return关键字可以用于将函数的计算结果返回给调用者,而truefalse则是两个特殊的常量,表示真和假。 在C语言truefalse通常被定义为1和0,因此可以将它们视为整数常量。在判断语句true表示条件为真,而false则表示条件为假。比如,我们可以使用if语句根据条件的真假来执行不同的操作,如下面的例子所示: ```c int age = 18; if(age >= 18) { return true; } else { return false; } ``` 在上面的例子,如果年龄大于等于18岁,我们就返回true,否则返回false。这样可以让我们根据条件的真假来执行不同的操作,如返回不同的结果或者执行不同的代码块。 需要注意的是,在C语言,不仅可以使用truefalse来表示真假,还可以使用非零值来表示真假。也就是说,只要一个值不等于0,就表示它为真。因此,在判断语句,我们可以使用任何非零值来表示真,而0则表示假。比如,下面的代码也可以用来判断年龄是否大于等于18岁: ```c if(age >= 18) { return 1; } else { return 0; } ``` 总的来说,在C语言,return truefalse是非常重要的概念,它们可以帮助我们根据条件的真假来执行不同的操作,从而实现更加灵活和智能的程序。因此,掌握这些概念对于学习和应用C语言是非常必要的。 ### 回答3: 在C语言,"true"和"false"是布尔值类型,用来表示"真"和"假"。在函数,可以使用"return true"和"return false"语句分别返回真和假。 当函数需要返回一个布尔值,而不仅仅是一个数或一个字符串时,使用布尔类型可以更加直观和易于理解。 例如,在编写一个函数来确认用户是否通过身份验证时,可以使用布尔值来表示这个结果。如果用户通过身份验证,则返回"true",否则返回"false"。示例代码如下: bool verify_user(char* username, char* password) { // 进行身份验证的代码 if (/* 验证通过 */) { return true; } else { return false; } } 在调用这个函数时,可以根据返回的布尔值来确定用户是否已通过身份验证。例如: if (verify_user(username, password)) { printf("您已通过身份验证。\n"); } else { printf("身份验证失败,请重试。\n"); } 总之,在C语言布尔类型的"true"和"false"可以用来表示逻辑上的真和假,并且可以方便地应用于函数的返回值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值