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;

}

相关推荐
xuhaoyu_cpp_java1 分钟前
过滤器与监听器学习
java·经验分享·笔记·学习
WolfGang00732118 分钟前
代码随想录算法训练营 Day17 | 二叉树 part07
算法
温九味闻醉20 分钟前
关于腾讯广告算法大赛2025项目分析1 - dataset.py
人工智能·算法·机器学习
炽烈小老头26 分钟前
【 每天学习一点算法 2026/03/23】数组中的第K个最大元素
学习·算法·排序算法
m0_4886333229 分钟前
C语言中枚举类型变量的定义、赋值及使用方法全解析
c语言·枚举类型·实例分析·变量定义·赋值使用
老鱼说AI35 分钟前
大规模并发处理器程序设计(PMPP)讲解(CUDA架构):第四期:计算架构与调度
c语言·深度学习·算法·架构·cuda
程序员小假37 分钟前
我们来说一下 b+ 树与 b 树的区别
java·后端
月落归舟39 分钟前
帮你从算法的角度来认识数组------( 二 )
数据结构·算法·数组
阿贵---1 小时前
C++中的RAII技术深入
开发语言·c++·算法
NAGNIP1 小时前
面试官:深度学习中经典的优化算法都有哪些?
算法