三元运算符是否提高了执行速度?

时间:2012-03-05 07:02:46

标签: operators ternary

  

可能重复:
  Speed difference between If-Else and Ternary operator in C…?

这是一个非常简单的问题,与if else语句相比,三元运算符是否会提高执行速度?

1 个答案:

答案 0 :(得分:0)

没有。大多数语言将其解析为非常相似的语法树。任何jit / optimizer都会将其折叠成简单指令的“基本块”,而不会跳转;从那时起,它将优化相同的。

当然,有一些非常糟糕的系统可能会出现这种情况;但是gcc / msvc / c#都会很好地处理它。

它的丰富性通常与它是一个表达而不仅仅是一个逻辑语句的事实有关。这样就可以很容易地做到这样的事情(注意:前面非常丑陋的例子):

size_t n = strlen( pszVar == NULL ? "" : pszVar );