C 筆試題之memcpy和memmove的實現

2021-08-15 04:23:38 字數 711 閱讀 6583

memcopy和memmove函式在linux下看了一下兩個函式的原始碼。

兩個函式都在標頭檔案string.h中定義,函式原型為:

void * __cdecl memcpy ( void * dst,const void * src,size_t count);

void * __cdecl memmove ( void * dst,const void * src,size_t count);

實現**如下:

void * __cdecl memcpy ( void * dst,const void * src,size_t count)

return(ret);

}

void * __cdecl memmove ( void * dst,const void * src,size_t count)

}else

}return(ret);

}

總結一下:

當src和dst區域沒有重疊時,兩個函式是完全一樣的。沒有重疊的條件是:dst <= src || (char *)dst >= ((char *)src + count。否則,memcpy是不能正常工作的,memmove是可以正常工作的。

因為memcpy不需要判斷重疊,所以它執行速度比memmove快,在確定dst和src不重疊的情況下,可以用memcpy。

筆試 c 筆試題

1 在派生類中通過 base 呼叫基類成員 解析 2 方法重寫使用關鍵字 override 解析 使用virtual和override關鍵字實現方法重寫 3 關於抽象類下面說法錯誤的是 選一項 a 抽象類可以包含非抽象方法 b 含有抽象方法的類一定是抽象類 c 抽象類不能被例項化 d 抽象類可以是密...

普天C 筆試題

普天是南京一家通訊公司,全稱為 南京普天通訊股份 公司 為 網上流傳一套普天c 筆試題,我將我做的答案公布與此,僅供參考。1.實現雙向鍊錶刪除乙個節點p,在節點p後插入乙個節點,寫出這兩個函式 答 假設線性表的雙向鍊錶儲存結構 typedef struct dulnodedulnode,dulink...

C語言筆試題

有a b c d四個人,要在夜裡過一座橋。他們通過這座橋分別需要耗時1 2 5 10分鐘,只有一支手電,並且同時最多只能兩個 人一起過橋。請問,如何安排,能夠在17分鐘內這四個人都過橋?答案 a b 2 mins 1 mins a c d 10 mins 2 mins b a b 2 mins 一共...