【问题标题】:issue with the conditional operator [duplicate]条件运算符的问题[重复]
【发布时间】:2013-06-20 02:40:54
【问题描述】:
#include<stdio.h>
int main()
{
  printf("%d\n", 4 ?: 8);
}

根据 C 标准,这个程序是无效的,因为它缺少 ?: 之间的表达式。但有趣的是,当我编译代码时它正在打印 4。怎么来它将打印4 而不是显示任何编译错误

【问题讨论】:

    标签: c gcc ternary-operator


    【解决方案1】:

    这是一个gcc 扩展。

    x ? : y
    

    等价于

    x ? x : y
    

    详情请见here

    【讨论】:

    • +1 也用于链接 gcc 文档。
    猜你喜欢
    • 2010-12-20
    • 2012-05-02
    • 2011-04-15
    • 2021-04-22
    • 2015-05-20
    • 2011-08-13
    • 2011-02-21
    • 2017-06-23
    • 2014-08-09
    相关资源
    最近更新 更多