在 C 语言中,我们可以自己实现 memcpy 函数来实现内存数据的拷贝操作。memcpy 函数用于将指定长度的数据从源地址复制到目标地址。
按字节拷贝实现memcpy
#include <stdio.h>
void* my_memcpy_byte(void* dst, const void* src, int n)
{
if (dst == NULL || src == NULL || n <= 0)
return NULL;
char* pdst = (char*)dst;
char* psrc = (char*)src;
//判断目标内存区域和源内存区域是否有重叠
if (pdst > psrc && pdst < psrc + n)
{
//如果有重叠,就从尾部开始遍历
pdst = pdst + n - 1;
psrc = psrc + n - 1;
while (n--)
*pdst--

文章介绍了如何在C语言中自定义memcpy函数,分别按字节和4字节进行内存拷贝,同时讨论了重叠内存区域处理和4字节对齐对效率的影响。
最低0.47元/天 解锁文章
8966

被折叠的 条评论
为什么被折叠?



