c语言中ture怎么定义

c语言中ture怎么定义,第1张

标准C语言中,非零则为ture,零为false,定义为整数

在底层中其基本判断实现逻辑为,

mov eax,value

neg eax

sbb eax,eax

neg eax

jz 根据是否为零实现跳转

只要value不为零,则经过上述运算后,eax都为1,即TRUE

若value为零,则eax为零,最终根据结果选择跳转。

#include <stdio.h>

void  main()

{

bool  b = true

 printf("%d\n",b)

 bool  c = false

 printf("%d\n",c)

}

扩展资料:

布尔数组中存放的是布尔值(元素),布尔值只有true 和false两种结果,其中,常量false可以理解为和int常量0等价,常量true可以理解为int常量1等价,在计算机中,实际上非0的int值都认为是true。

正因为布尔数组的这种特性,使得其在有些程序中进行使用可以起到优化的作用,甚至是事半功倍的效果。比如在搜索中就经常用到,可以用布尔数组区分那些经过处理的和没有经过处理的数据,避免了一些不必要的重复。

NULL=0

FALSE=0

TRUE记得是-1,但是如果用于if语句中,任何非0值都是true。但是TRUE一个宏,无法覆盖所有情况。

所以切记不要写出TRUE == (表达式)这样的判断,因为这样的判断往往都是错误的

举例来说,

int bitmask = 0x0010000

if(~bitmask) //这是true的

if(TRUE == ~bitmask) //虽然你想要达到的目的和上面一样,但是实际这会是false。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7959005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存