看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《LPH66 (-858993460)》之銘言: : ※ 引述《pichubaby (Pichu)》之銘言: : :  這行 : :   我想問的是  : :   大家應該都當作編譯器會自動最佳化,所以為了可讀性可以這樣寫 : :   但是假如他的型別為自定義型別 : : 例如 : :       s[i] -= _T('A') - _T('a'); : : 的話,編譯器仍然會跟進去做最佳化嗎? : _T 這例子可能不太好 : 因為至少對 compiler 來說 : 在變成 L'A' 之後它還是一個 wchar_t 的常數 : 這個型態的常數相減它還是可以自己做 所以這個情形一樣會處理掉 : 但我想你要問的是一些自訂型別的 ctor 的樣子 : 例如 foo('A') - foo('a') (若 class foo 有 foo(char) 及 operator - 的話) : 這種我覺得就不一定了 可能最多做到 inline 而不會最佳化到底 : 畢竟 compiler 並不知道你到底寫了什麼東西在那裡面... : (當然 inline 後有沒有可能進一步最佳化也是個問題就是) 恩 的確用class foo會比較接近原意  考慮到連結後不在進行最佳化的話,或許就真的不會做到底  那假如連結後有可能繼續最佳化下去嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.182.94
loveme00835:...你忘了推文嗎 03/02 15:53
pichubaby:=口= 他不能自刪 03/02 17:20
uranusjr:這篇要推文也滿麻煩的, 也算有意義, 就別矯枉過正了吧 03/02 19:04
akasan:對於 class 的 operator 不要有太多的幻想, 對編譯器來說 03/02 22:12
akasan:它就只是個函數呼叫罷了, 資訊夠 compiler 就有機會最佳化 03/02 22:12
pichubaby:謝謝樓上 03/03 07:52