Chinaunix首页 | 论坛 | 博客
  • 博客访问: 313682
  • 博文数量: 66
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 509
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-29 13:56
文章分类
文章存档

2018年(2)

2017年(6)

2016年(34)

2015年(24)

我的朋友

分类: 嵌入式

2016-05-30 08:49:49

最近调试代码,发现了如下代码
/* set standard and fast speed deviders for high/low periods */
signalA_falling_time = dev->signalA_falling_time ?:300; /* ns */
signalBl_falling_time = dev->signalA_falling_time ?: 300; /* ns */

注意红色字体部分,我们传统的 三目运算符,带有3个操作数,a > b ? a : b ,
条件为非0的时候,取a, 0的时候取b.

这里省略了第二个操作数,那么他是怎么运行的呢?
比如 a > b : b, 这句的作用是,如果条件为真,就返回 真, 否则返回b. 这只是举例说明。
很显然,如果要获取a, b的较大的一个,可以这么写, a ?: b。

回到上面的代码,就是如果dev->signalA_falling_time值非0, 返回这个值,否则用默认值300.

阅读(1283) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~