0x9*_*x90 38 c gcc boolean boolean-expression
我遇到了以下代码段:
pt->aa[!!(ts->flags & MASK)] = -val;
!!(双惊叹号/感叹号/两个非操作符)代表c?(!!NULL) == NULL吗?Jan*_*Jan 59
!是否定的.所以!!否定否定.重要的是结果将是一个int.
!!x如果x == 0是!!0,就是!1这样0.!!x如果x != 0是!!(!0),那!!1就是!0,那就是1.!! 如果要将任何非零值转换为1,同时确定0仍为0,则通常使用.
事实上,!!NULL == NULL由于!!NULL == !!0与!!0 == !1最后!1 == 0.
因此,在您引用的短代码中,0如果括号中的表达式的值是NULL,则数组下标将是,1否则.
| 归档时间: | 
 | 
| 查看次数: | 6367 次 | 
| 最近记录: |