memcpy函数原型:
void* memcpy(void* pvTo, const void* pvF r om, size_t size)
{
assert((pvTo!= NULL) && (pvFrom!= NULL));
unsigned char* pbTo = (unsigned char*)pvTo;
unsigned char* pbFrom = (unsigned char*)pvFrom;
while(size-- > 0)
{
*pbTo++ = *pbFrom++;
}
return pvTo;
void* memcpy(void* pvTo, const void* pvF r om, size_t size)
{
assert((pvTo!= NULL) && (pvFrom!= NULL));
unsigned char* pbTo = (unsigned char*)pvTo;
unsigned char* pbFrom = (unsigned char*)pvFrom;
while(size-- > 0)
{
*pbTo++ = *pbFrom++;
}
return pvTo;
}
注://为了尽量使适用范围广,memecpy的参数写为void*,
但指针解引用使用时必须知道类型,函数是进行位拷贝,
所以就有上述的cast强制转换为unsigned char*.
//memcpy操作的最小单位是byte,而char类型一般都是一个byte,所以强制转换为unsigned char*