1、C语言中双感叹号的作用

(1)感叹号的作用:感叹号是逻辑运算符,表示逻辑非,也就是把真变成假,把假变成真;
(2)在C语言中,0值表示假,非0值都是真,所以感叹号会把非0值变成0,而把0值变成1;
(3)双感叹号的作用就是把非0值变成1,0还是0

2、内核中双感叹号使用实例

//这是input子系统中按键相关的代码
//value表示按键的值
static inline void input_report_key(struct input_dev *dev, unsigned int code, int value)
{input_event(dev, EV_KEY, code, !!value);
}

(1)按键只有两个状态:按下和弹起,这符合布尔变量,我们可以用0和1来表示;
(2)但是在函数中value是int型,value可以传递进来任意的整数,但是我们希望实际传递下去的是0和1,所以就对value变量使用双引号;

C语言中双感叹号的作用相关推荐

  1. php语言中双引号的作用是什么,php中的单引号与双引号作用详解

    一.引号定义字符串 在Php中,通常一个字符串被定义在一对引号中,如: 'I am a string in single quotes' "I am a string in double q ...

  2. C语言中双感叹号(!!)的含义

    C语言中的感叹号(!)是逻辑运算操作符.经过该操作符运算后的值只有 2 种情况,要么为 1,即 True,要么为 0,即 False. 在进行逻辑运算时,所有非 0 的值都会被认为是 True,而只有 ...

  3. C语言中双下划线__的作用

    C语言中双下划线__的作用 以单下划线(_)表明是标准库的变量 双下划线(__) 开头表明是编译器的变量 所以 双下划线__只是C语言的一个合法标识符 不一定是变量, 也可以是函数,宏等. 同时双下划 ...

  4. C++中双感叹号!!的含义

    C语言中偶尔会遇到 !!(cond),特别是在宏定义当中: 单!用法 一个感叹号!我们知道是取非,如下: !(非零)=0 !(零)=1 双!用法 两个感叹号由此推导可以知道: !!(非零)=1 !!( ...

  5. Python中双冒号的作用[::]

    Python中双冒号的作用[::] Python sequence slice addresses can be written as a[start:end:step] and any of sta ...

  6. Swift语言中的感叹号是什么意思?

    本文翻译自:What does an exclamation mark mean in the Swift language? The Swift Programming Language guide ...

  7. C++中双冒号::的作用浅析

    转载自:https://www.jb51.net/article/142032.htm C++中双冒号::的作用浅析 更新时间:2018年06月14日 11:59:12   作者:yz930618 在 ...

  8. js中双感叹号_JavaScript中双叹号(!!)作用

    经常看到这样的例子: vara:var b=!!a; a默认是undefined.!a是true,!!a则是false,所以b的值是false,而不再是undefined,也非其它值,主要是为后续判断 ...

  9. javascript中双感叹号(!!)作用

    作为一个前端,在开发过程中经常会遇到!!(双感叹号),那么!!究竟有何含义,以下做详细说明,并罗列了js各数据类型使用后(不含symbol)输出结果(小白可以参照): javascript中'!'是& ...

最新文章

  1. 在Python中获取文件大小? [重复]
  2. 【读书笔记】程序员的自我修养总结(七)
  3. 计算机教育的需求,我国教育信息化市场需求分析
  4. IntelliJ IDEA 选中变量名,高亮显示其它地方的这个变量名,高亮颜色如何设置呢?
  5. java中四类八中_JAVA中的八中基本数据类型
  6. 消息中间件的技术选型心得-RabbitMQ ActiveMQ和ZeroMQ
  7. WinForm应用程序框架设计之WinAction(一:显示列表窗体)
  8. 《JavaScript高级程序设计》红宝书第二遍阅读(动手实践)
  9. 在安装project2010 64位时提示 “无法安装64位office,因为已有32位版本”解决方法
  10. 报文分析4、TCP协议的头结构
  11. java doctitle_Java ActionItem.setDocTitle方法代码示例
  12. 配置静态路由/下一跳知识
  13. 一个技术总监迟到的新年开篇
  14. 国内主流集群渲染管理软件介绍
  15. 大学里青年教师待遇真的很低吗?
  16. Java学习中遇到的中文乱码问题的整理和解决方法
  17. IAR 设置TAB代码格式问题
  18. 用技术支点撬开“掘金池”,多多云能否成为中国版VMWare?
  19. matlab 改变像素颜色,MATLAB图像处理_直接操作像素点进行颜色变换
  20. R语言学习笔记3_探索性/描述性数据分析

热门文章

  1. suse zypper
  2. mysql的check约束怎么设置_mysql 的 check约束
  3. 关于ios的IDFA
  4. Data Guard ----理论详解(四)
  5. mac OS ToDesk授权配置
  6. android系统坏掉了怎么办,手机主板坏了怎么办?如何解决?
  7. 集群聊天服务器项目(C++ 11实现)
  8. char 字符 c语言,C语言初探之字符(char)
  9. 儿科医院短信群发模板:预约挂号、就诊提醒、疫苗通知
  10. Python ftplib cwd() 进入含中文目录失败 解决方案