首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux中条件运算符的奇怪用法

Linux中条件运算符的奇怪用法
EN

Stack Overflow用户
提问于 2011-10-19 06:46:46
回答 4查看 2K关注 0票数 37

在3.0.4 Linux内核中,mm/filemap.c包含以下代码行:

代码语言:javascript
复制
retval = retval ?: desc.error;

我曾尝试用gcc -Wall编译一个类似的最小测试用例,没有得到任何警告;其行为似乎与以下行为相同:

代码语言:javascript
复制
retval = retval ? retval : desc.error;

看看C99标准,我想不出是什么正式地描述了这种行为。为什么这是可以的?

EN

Stack Overflow用户

发布于 2011-10-19 06:49:14

这是gcc的分机。x ?: y等同于x ? x : y -参见http://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals

是的,我也认为这是邪恶的。

票数 20
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7814694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档