【发布时间】:2012-02-04 08:14:29
【问题描述】:
我认为这是不可能的,但显然在 Objective C 中这是允许的:
int a = b ?: c;
所以你看到他们在这里做了什么,他们省略了三元表达式的第二部分,这样如果 b 不为零,则 b 用作第二部分。
这很聪明,但据我所知,这违反了 K&R C,可能还有 ANSI C。
如果没有,我多年来一直错过了一个非常聪明的语法技巧......唉!
更新: 是 gcc。
【问题讨论】:
-
哪个编译器? GCC 将其作为扩展,尽管它已被弃用。
-
更正确的术语是有条件的。三元只是意味着它是一个带有 3 个参数的运算符。
标签: objective-c c ternary-operator conditional-operator