作者cppOrz (cppOrz)
看板C_and_CPP
标题Re: [问题] 请问三元运算子的好处?
时间Sun Dec 18 16:02:41 2005
※ 引述《shane123 (家产有八十七亿  ﰩ》之铭言:
: hi, 请问大家一下
: 三元运算子 ?:
: 和 if 比较来好处除了明了以外
: 速度有比较快吗?
: 我曾在一本书上看到说
: 这样会比较快一点
: 请问是真的吗?
: thanks~~
速度有没有比较快我是不清楚,大概要编成 ASM 来看看。
不过即使快也快不到哪里去,使用三元运算的目的不在这里。
对 C 语言来说,三元运算和 if-else 的差别在於前者符合
C 语言的一个特色:强正交性。好处是可以用来精链程式码。
对 C++ 来说,三元运算还有一些特殊用途,关键是在:
Val = Condition ? A : B;
这样的叙述中,A 和 B 两个变量(物件)的型别必须一致,或是
其中一个可以转型为另一个。利用这个特性,三元运算可以用来
实现「型别推导」的功能。
不过这个细节有点复杂,就不多说了,有兴趣的人可去参考以下
这篇文章:
http://www.artima.com/cppsource/foreachP.html
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.120.214.120
1F:推 shane123:thanks...原来如此啊..!! 12/18 16:46
2F:推 bobhsiao:可以进一步说明"强正交性"吗~^^ 12/19 19:05