linux memcpy 地址对齐,在memcpy中对齐源地址和目标地址
…所以首先正确对齐的目标地址现在可能无法正确对齐.那么有没有办法调整两者?
我发现这篇关于memcpy优化的文章,我相信它会讨论你想要做的事情…(参见下面的代码示例链接)
modified-GNU算法:
void * memcpy(void * dst, void const * src, size_t len)
{
long * plDst = (long *) dst;
long const * plSrc = (long const *) src;
if (!(src & 0xFFFFFFFC) && !(dst & 0xFFFFFFFC))
{
while (len >= 4)
{
*plDst++ = *plSrc++;
len -= 4;
}
}
char * pcDst = (char *) plDst;
char const * pcDst = (char const *) plSrc;
while (len--)
{
*pcDst++ = *pcSrc++;
}
return (dst);
}
修改的GNU算法的This变体使用计算来调整地址未对准.