C语言中的两个!号
最新推荐文章于 2025-05-25 13:01:01 发布
原创
最新推荐文章于 2025-05-25 13:01:01 发布
·
1.6k 阅读
·
0
·
0
·
CC 4.0 BY-SA版权
版权声明:本文为博主原创文章,遵循
CC 4.0 BY-SA
版权协议,转载请附上原文出处链接和本声明。
其它
专栏收录该内容
4 篇文章
订阅专栏
在看内核代码的时候,经常会看到在返回一个值时,会在一个表达式前面加两个感叹号, google了一下,两个感叹号的原因是将非零值变成1, 零不变。
比如:
!!5 = 1.
!!0 = 0.
确定要放弃本次机会?
福利倒计时
:
:
立减 ¥
普通VIP年卡可用
立即使用
a254373829
关注
关注
0
点赞
踩
0
收藏
觉得还不错?
一键收藏
知道了
0
评论
分享
复制链接
分享到 QQ
分享到新浪微博
扫一扫
举报
举报
专栏目录
c
语言
编程当中
两个
!
!
的作用
qq_38158479的博客
07-26
1571
0没的说了,使用两次
!
还是0,,那非0呢?比如1和12,-1等,它们使用两次以后都变成1。在一些内核模块的代码里面经常看到一个表达式里面用
两个
!
符
号
的,搜索了一下,其实。作用有
两个
,一个是非零值使用
!
...
C:
两个
叹
号
的含义
mzhan017的博客
08-25
848
bool local_rcv; local_rcv =
!
!
(br->dev->flags & IFF_PROMISC); 这里的
两个
叹
号
的含义,就是:先将一个整数取反,转换成真假值(bool值),然后再来一次取反,取值之前整数的真假值。
参与评论
您还未登录,请先
登录
后发表或查看评论
C
语言
中双感叹
号
(
!
!
)作用解析
最新发布
m0_37989557的博客
05-25
769
初识双感叹
号
(
!
!
),它是一个陌生的事物。但是,我们已经知道单个感叹
号
!
在C
语言
中是逻辑非运算符,它会把非零的值变成0,把0变成1。比如,
!
5的结果就是0,而
!
0的结果就是1。通过查阅资料,双感叹
号
(
!
!
)并不是C
语言
中的
运算符。因此,我们猜测双感叹
号
(
!
!
)仅仅是将逻辑非连续运行两次而已。经过验证,事实也是如此。
!
!
通过两次逻辑非操作,将任意整数转换为0或1,确保结果的布尔语义明确。如果仅是简单的了解,着急赶路,那么到此就可以结束了。如果有时间,倒是可以深入剖析下。接下来需要讨论的两点:双感叹
号
!
!
C: #一个井
号
、##
两个
井
号
的使用问题
mzhan017的博客
04-15
633
在Kernel代码里有很多地方使用这种方式。实现预编译时,新token的形成。 作用是C版的泛化编程,最大限度的实现代码复用。并且实现接口模式的统一。 例子:下面的片段,实现系统文件系统读写的接口: /include/linux/sysfs.h #define __ATTR(_name, _mode, _show, _store) { .attr = {.name = __stringify(_name), .mode = VERIFY_OCTAL_PERMISSIONS(_mode) },
关于C
语言
中
两个
惊叹
号
(
!
)的问题
bytxl的专栏
10-15
4411
两个
!
是为了把非0值转换成1,而0值还是0。 因为C
语言
中,所有非0值都表示真。所以
!
非0值 = 0,而
!
0 = 1。所以
!
!
非0值 = 1,而
!
!
0 = 0。例如:i=123
!
i=0
!
!
i=1最后将123转换为1。就是其他数据类型向bool值的转换。 http://rpy000.blog.163.com/blog/static/19610953620121111
C
语言
中
两个
非运算(
!
!
)的作用
Andy的博客
03-23
7453