[問題] function memcpy()的疑問^^

看板C_and_CPP (C/C++)作者 (我是我 我不是我)時間16年前 (2009/07/27 20:07), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/2 (看更多)
void * memcpy ( void * destination, const void * source, size_t num ); 是一個很常用的function 對於連續資料的複製會比自己使用迴圈快不少 但是有沒有可能 當size_t 在多少以下的時候 反而比一行一行寫慢呢? 例如 mem_addr1, mem_addr2都是char* memcpy(mem_addr1, mem_addr2, 2); 和 mem_addr1[0]=mem_addr2[0]; mem_addr1[1]=mem_addr2[1]; 會不會後者較快? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.247.173.226

07/27 20:12, , 1F
印象中好的實作會視資料量決定是不是用後者直接assign@@
07/27 20:12, 1F

07/27 21:11, , 2F
你要複製的數目很少的時候,memcpy畢竟是函數呼叫,就會有額外
07/27 21:11, 2F

07/27 21:13, , 3F
的成本。總之可以自己測,http://tinyurl.com/nj86tg (clock)
07/27 21:13, 3F
文章代碼(AID): #1ARPYIFm (C_and_CPP)
文章代碼(AID): #1ARPYIFm (C_and_CPP)