c---内置函数模拟(memset,memcmp,memcpy,memmove)

void* my_memset(void* s1, int zifu, int num) {//引用string.h

assert(s1);

void* ret = &s1;

while (num--) {

*(char*)s1 = (char)zifu;

s1 = (char*)s1 + 1;

}

return ret;

}

int my_memcmp(const void* s1,const void* s2,int num) {

assert(s1 && s2);

while (num--) {

if (*(char*)s1 > *(char*)s2) {

return 1;

}

else if (*(char*)s1 < *(char*)s2) {

return -1;

}

s1 = (char*)s1 + 1;

s2 = (char*)s2 + 1;

}

return 0;

}

void* my_memmove(void* s1,const void* s2,int num) {

void* ret = &s1;

assert(s1 && s2);

if (s1 < s2) {

while (num--) {

*(char*)s1 = *(char*)s2;

s1 = (char*)s1 + 1;

s2 = (char*)s2 + 1;

}

}

else {

while (num--) {

*((char*)s1 + num) = *((char*)s2 + num);

}

}

return ret;

}

}void* my_memcpy(void* data1,const void* data2,int num) {

assert(data1 && data2);

void* ret = data1;

while (num--) {

*(char*)data1 = *(char*)data2;

data1 = (char*)data1 + 1;

data2 = (char*)data2 + 1;

}

return ret;

}

相关推荐
RuoZoe1 小时前
重塑WPF辉煌?基于DirectX 12的现代.NET UI框架Jalium
c语言
心之语歌2 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊3 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang3 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
AI软著研究员3 小时前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法
FunnySaltyFish4 小时前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
Ray Liang5 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
颜酱5 小时前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法
Java水解5 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
SimonKing9 小时前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员