LinuxSir.cn,穿越时空的Linuxsir!

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

请教C语言的?:语句

[复制链接]
发表于 2006-5-15 12:12:33 | 显示全部楼层 |阅读模式
在看源代码时发现有如下语句
  imutexattr = (const struct pthread_mutexattr *) mutexattr ?: &default_attr;
小弟C语言功底不够,还没见过这样的用法
请问一下这个语句是这样的意思吗?
if(mutexattr)
     imutexattr = mutexattr;
else
     imutexattr = &default_attr;

先谢谢各位
发表于 2006-5-15 13:15:25 | 显示全部楼层
这样能编译过么?我也没见过
回复 支持 反对

使用道具 举报

发表于 2006-5-15 13:35:15 | 显示全部楼层
Post by chinarrr
在看源代码时发现有如下语句
  imutexattr = (const struct pthread_mutexattr *) mutexattr ?: &default_attr;
小弟C语言功底不够,还没见过这样的用法
请问一下这个语句是这样的意思吗?
if(mutexattr)
     imutexattr = mutexattr;
else
     imutexattr = &default_attr;

先谢谢各位

好像就是这个意思,不过这个还是看着比较诡异,刚刚查了C A Reference Manual第5版,没看到有说可以这么用的,但是写了个程序用gcc测试了一下,的确又是这样。
回复 支持 反对

使用道具 举报

发表于 2006-5-15 14:27:50 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则

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