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;

}

相关推荐
近津薪荼10 分钟前
优选算法——分治(2):快速选择
算法
Z...........10 分钟前
(优选算法)斐波那契数列模型
数据结构·算法
于先生吖27 分钟前
国际版JAVA婚恋交友系统源码:多语言适配,可商用的跨境婚恋解决方案
java·大数据·交友
zyjyyds11328 分钟前
和为0的四元组-双指针法(C语言实现)
c语言·数据结构·算法
fengci.37 分钟前
ctfshow(web入门)279-286
java·开发语言·学习
fy1216339 分钟前
navicat15安装破解
java
炽烈小老头43 分钟前
【每天学习一点算法 2026/03/16】电话号码的字母组合
学习·算法
ok_hahaha44 分钟前
java从头开始-苍穹外卖day05-Redis及店铺营业状态设置
java·开发语言·redis
Lee川1 小时前
时空迷宫探险记:从O(1)到O(2^n)的算法进化论
算法·面试