推 UNARYvvv:建議直接把兩者翻譯成組合語言再列出來比較,會比較實在 12/18 15:23
→ UNARYvvv:我是說利用編譯器輸出組合語言的功能 12/18 15:25
→ UNARYvvv:畢竟我在 Programming 板常看到你問組合語言,應該ok吧~ 12/18 15:25
推 UNARYvvv:不過我倒覺得用 if 不見得就會比 ?: 難看,看情況而定吧 12/18 15:27
推 shane123:哦, 哈哈 謝謝你囉!! 12/18 15:57
推 yqln95:並沒有比較快,兩者在翻成組合語言時是一樣的。 12/18 17:49
> -------------------------------------------------------------------------- <
作者: 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
推 shane123:thanks...原來如此啊..!! 12/18 16:46