Re: [情報] C/C++ 利用空指標提高程式效率
看板C_and_CPP (C/C++)作者softwind (software everywhere)時間16年前 (2009/04/05 00:35)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
-10
29