Strcpy與memcpy兩函數(shù)的經(jīng)典實(shí)現(xiàn)
char?*strcpy(char?*des,?const?char?*src){???????assert((des?!=?NULL)?&&?(src?!=?NULL));
???????char?*add?=?des;
???????while?((*des++?=?*src++)?!=?‘\0’)?;
return?des;
}
?
void??*memcpy(void?*pvTo,?const?void?*pvFrom,?size_t?size)?{
???????assert((pvTo?!=?NULL)?&&?(pvFrom?!=?NULL));??????//?使用斷言
???????byte?*pbTo?=?(byte?*)?pvTo;?????????//?防止改變pvTo的地址
???????byte?*pbFrom?=?(byte?*)?pvFrom;?//?防止改變pvFrom的地址
???????while(size?--?>?0?

??????????????*pbTo?++?=?*pbFrom?++?;
???????return?pvTo;
}
posted on 2007-10-29 01:23 旅途 閱讀(652) 評論(0) 編輯 收藏 引用 所屬分類: C/C++