精華區beta C_and_CPP 關於我們 聯絡資訊
hi, 請問大家一下 三元運算子 ?: 和 if 比較來好處除了明瞭以外 速度有比較快嗎? 我曾在一本書上看到說 這樣會比較快一點 請問是真的嗎? thanks~~ -- Transcendent For Programming -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.97.25
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