Re: [情報] C/C++ 利用空指標提高程式效率

看板C_and_CPP (C/C++)作者 (software everywhere)時間16年前 (2009/04/05 00:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《uefang (雲飛(想出去玩))》之銘言: : http://tech.ccidnet.com/art/1081/20060407/500363_1.html 針對他的說法/解釋 我的看法是這樣: 1. 他沒有避免for 循環 2. 本來就沒有除了 參數以外的 local variable 或者該說 不是宣告成參數就不佔stack 3. 用 *array 不一定比 array[n] access快速 (如果是終止條件的話 可以預先知道 size mov cx,size; loop 不一定會比較快) 與其說 他有改進 任何一點東西 不如說 因為傳array進func 只會傳 &(array[0]) 所以 使用一個 null 代表 array 結尾 是一個"不得不"的解決方法 1. 避免for-loop 那不如用if+goto 連 mov cx,X; loop 都省了 直接jmp... (如果LD會使flag變化) 2. void print_char( register char** array ) 不知道 有沒有機會塞進 register 3. *array++ 和 array[idx++] 這兩種用法 我也很疑惑 我覺得這邊還是要看 asm code 才能確定 gcc 會認出 *to++=*from++, 可是認不出 to[i++]=from[j++]; (會compile出 movsb/w/d 的指令) (印象中VC剛好相反...) 用pointer和index的速度 C++風格與藝術 的講法 好像不太一樣 說真的 沒有使用工具 下去量func的使用時間 要調 效能 嗯嗯嗯... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.122.27
文章代碼(AID): #19rumq0n (C_and_CPP)
文章代碼(AID): #19rumq0n (C_and_CPP)