C++博客 - christanxw的专栏 - 变态之MEMCPY
来源:百度文库 编辑:神马文学网 时间:2024/06/03 14:22:02
变态之MEMCPY
void* mymemcpy( void* dest, const void* src, size_t count )
{
char* d = (char*)dest;
const char* s = (const char*)src;
int n = (count + 7) / 8; // count > 0 assumed
switch( count & 7 )
{
case 0: do { *d++ = *s++;
case 7: *d++ = *s++;
case 6: *d++ = *s++;
case 5: *d++ = *s++;
case 4: *d++ = *s++;
case 3: *d++ = *s++;
case 2: *d++ = *s++;
case 1: *d++ = *s++;
} while (--n > 0);
}
return dest;
}
这样也行,真是长见识了~_~
int n = (count + 7) / 8;计算要复制的轮数(每轮复制8位),剩下的余数位数也要复制进去。
count & 7控制要复制余数位数,while (--n > 0)控制轮数。
比如count = 9,则n = 2,count & 7 = 1,要复制2轮,程序跳到case1执行,复制一位之后,再循环一轮,复制8位
posted on 2005-10-11 11:02christanxw 阅读(66)评论(1) 编辑 收藏收藏至365Key
void* mymemcpy( void* dest, const void* src, size_t count )
{
char* d = (char*)dest;
const char* s = (const char*)src;
int n = (count + 7) / 8; // count > 0 assumed
switch( count & 7 )
{
case 0: do { *d++ = *s++;
case 7: *d++ = *s++;
case 6: *d++ = *s++;
case 5: *d++ = *s++;
case 4: *d++ = *s++;
case 3: *d++ = *s++;
case 2: *d++ = *s++;
case 1: *d++ = *s++;
} while (--n > 0);
}
return dest;
}
这样也行,真是长见识了~_~
int n = (count + 7) / 8;计算要复制的轮数(每轮复制8位),剩下的余数位数也要复制进去。
count & 7控制要复制余数位数,while (--n > 0)控制轮数。
比如count = 9,则n = 2,count & 7 = 1,要复制2轮,程序跳到case1执行,复制一位之后,再循环一轮,复制8位
posted on 2005-10-11 11:02christanxw 阅读(66)评论(1) 编辑 收藏收藏至365Key
C++博客 - christanxw的专栏 - 变态之MEMCPY
memcpy&memmove的比较
C语言宏的学习: - henry19850318的专栏 - CSDN博客
C语言宏的学习: - henry19850318的专栏 - CSDN博客
异常处理 - [C++] - guomei的专栏 - CSDN博客
C Recommend Book List - ehui928的专栏 - CSDN博客
C语言字符串函数大全 - amossavez的专栏 - CSDN博客
javacard mask.c 文件结构 - tccth4091的专栏 - CSDN博客
微软经典面试测试题和参考答案(变态) - jiangxinyu的专栏 - CSDN博客
C armman的专栏 - CSDNBlog
C-Free4.1专业版注册码破解 - xiufeng_wang的专栏 - CSDN博客
keil c编译器错误与解决方法 - babylon_0049的专栏 - CSDN博客
STL之vector的使用 - wxdvc的专栏 - CSDN博客
C 资源之不完全导引(完整版) - ugg的专栏 - CSDNBlog
CToolTipCtrl使用详细解说 - zhoubl668的专栏:远帆,梦之帆! - C...
Win7搜索之体验! - y97523的专栏 - CSDN博客
资讯的博客专栏
刘军宁的博客专栏
杨伟庆的博客专栏
潘太史的博客专栏
c代码优化方案 - quanming1119的专栏
博客营销之寻找素材的九个途径_毛从任的博客专栏_艾瑞网专栏
丹柯的博客专栏
刘东明的博客专栏