【发布时间】:2020-12-02 13:54:18
【问题描述】:
我知道根据标准,应该避免fun(++a, a),因为第二个参数没有很好地定义。
但是,这种配方是否安全:
(++a ? a : 10);
我测试了这个 sn-p,它按预期工作,ie 对于a = -1,它的计算结果为10,对于任何其他a,它的计算结果为a+1。这是在标准中明确定义的,还是很大程度上取决于编译器?
【问题讨论】:
-
阅读n1570
-
据此,可以安全地假设第二个和第三个参数在第一个参数之后进行评估。尽管如此,我仍然希望得到更有经验的人的确认。
-
代码审查不安全 - 我仍然会解雇你:)
-
@MartinJames 你一开始就买不起我 ;)
-
@Marko 哈哈,稍后在 JobCentre 见:)
标签: c standards conditional-operator