memcpy源代码
C库函数源代码memcpymemcpyvoid * memcpy(void * dst, void * src, size_t count){if (nullptr == dst || nullptr == src || 0 == count) {return nullptr;}void * ret = dst;if ((char*)dst <= (char*)src || ...
·
C库函数源代码
memcpy源代码
void * memcpy(void * dst, void * src, size_t count)
{
if (nullptr == dst || nullptr == src) {
return nullptr;
}
void * ret = dst;
char* pdst = (char*)dst;
char* psrc = (char*)src;
if ((char*)pdst <= (char*)psrc || (char*)pdst >= (char*)psrc + count) {
while (count--) {
*pdst++ = *psrc++;
}
}
else {
pdst += count - 1;
psrc += count - 1;
while (count--) {
*pdst-- = *psrc--;
}
}
return ret;
}
更多推荐
所有评论(0)