C语言模拟实现memset.memcmp函数
2015-11-21 17:09
423 查看
之前我们实现了memmove、memcpy函数进行内存拷贝,仅限我们实现memset与memcmp函数进行内存初始化和内存比较的功能。
memset(void*,int,size_t)其功能试讲传递进来的类型用整形来初始化n个单位,核心也是对强制类型转换的理解与运用,代码如下:
memset(void*,int,size_t)其功能试讲传递进来的类型用整形来初始化n个单位,核心也是对强制类型转换的理解与运用,代码如下:
void*my_memset(void*str, int set, size_t count) { assert(str); void*p = str; while (count--) { *(int*)str = set; str = (int*)str + 1; } return p; }memcmp也是一样的道理,代码如下:
int my_memcmp(void*buf1, void*buf2, size_t count) { assert(buf1); assert(buf2); while (count--) { if (*(char*)buf1 == *(char*)buf2) { buf1 = (char*)buf1 + 1; buf2 = (char*)buf2 + 1; } else { if (*(char*)buf1 > *(char*)buf2) { return 1; } else { return -1; } } } return 0; }如有不足希望批评指正,有什么疑问请留言
相关文章推荐
- c语言:给十个整数比较大小
- c语言:4种方法;交换两个整数的位置(包括引入第三方变量和不引入第三方变量)
- c语言:2种方法;求两个整数之中的较大者
- C语言实验——单词统计
- 浅谈C语言中如何取随机数
- C语言:求两个整数之和
- 模拟实现C语言strncpy.strncat.strncmp函数
- C语言:在屏幕上输出信息
- C++学习笔记26——泛型算法之容器元素排序(sort unique)
- C语言读取文件的内容
- C++ 11 auto & decltype
- c++任意数字转换为字符串
- c++11线程管理,RAII方式等待异常环境下线程结束
- C语言简单实现接口
- 002--VS C++ 获取鼠标坐标并显示在窗口上
- C++ this 指针
- 关于C++中的引用传递
- 关于C语言0x01
- c语言栈的应用之括号匹配问题
- C++设计模式[十四]解释器模式