Re: [問題] 如何優化此程式|補充發問
※ 引述《pichubaby (Pichu)》之銘言:
: ※ 引述《truesword ( )》之銘言:
: : void tranform(char *s){
: : int i=0;
: : for(i; i<strlen(s); i++){
: : if(s[i]>'A' && s[i]<'Z'){
: : s[i] -= 'A'-'a';
: 這行
: 我想問的是
: 大家應該都當作編譯器會自動最佳化,所以為了可讀性可以這樣寫
: 但是假如他的型別為自定義型別
: 例如
: 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 後有沒有可能進一步最佳化也是個問題就是)
--
"LPH" is for "Let Program Heal us"....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.254.23.234
推
03/02 17:19, , 1F
03/02 17:19, 1F
→
03/02 17:19, , 2F
03/02 17:19, 2F
→
03/02 17:20, , 3F
03/02 17:20, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 3 篇):