【发布时间】:2012-08-21 00:15:09
【问题描述】:
今天,在阅读我的 C 书籍时,我偶然发现了一个小宝石:? 运算符。它是一个三元运算符,其作用类似于基于天气的 if else 语句或语句是真还是假。
显然使用? 运算符应该更有效。
以下代码使用 if / else 语句(假设 somefunc 在失败时返回 NULL):
foo = somefunc();
if(foo) printf("\nFunction Suceeded!");
else printf("\nFunction Failed!");
此代码与第一个相同,但使用 ? 运算符:
somefunc() ? printf("\nFunction Suceeded!") : printf("\nFunction Failed!");
我知道这在大多数情况下都没有用,但是我知道我已经看到了无数可以轻松使用它来代替 if / else 语句的实例。
使用这种方法是个好习惯吗?
【问题讨论】:
-
更多的是关于可读性,使用三元运算符可以减少难以理解的代码,特别是如果您使用嵌套的。
-
printf(somefunc() ? "\nFunction Suceeded!" : "\nFunction Failed!"); -
@Vlad 太酷了
标签: c operator-keyword ternary-operator