LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1210|回复: 2

kernel/timer.c 中这个语句什么意思,为什么这样写?

[复制链接]
发表于 2006-4-19 15:40:17 | 显示全部楼层 |阅读模式
* Don't completely fail for HZ > 500.  */
int tickadj = 500/HZ ? : 1;             /* microsecs */
发表于 2006-4-24 17:45:53 | 显示全部楼层
双目运算符 ?: 是 gcc 对三目运算符 ?: 的一种扩展,
x ?: y
等同于:
x ? x : y

详见 info gcc :: C Extensions :: Conditionals .
这个很有用,在很多情况下可以省掉写一个临时变量,避免同一运算式被求值两次。如当 x 是调用一个函数, x 是一个宏参数时,等等。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-24 18:30:05 | 显示全部楼层
谢谢啦,得好好看看gcc文档了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表