当前位置: 首页 > news >正文

手机网站模版更换技巧wordpress的文件说明

手机网站模版更换技巧,wordpress的文件说明,营业执照怎么申报年报,情感营销案例目录1. memcpy函数的使用与模拟实现1.1 函数介绍1.2 使用示例1.3 模拟实现2. memmove函数的使用与模拟实现2.1 函数介绍2.2 使用示例2.3 模拟实现3. memset函数的使用3.1 函数介绍3.2 使用示例4. memcmp函数的使用4.1 函数介绍4.3 使用示例🔥个人主页:月…


目录

  • 1. memcpy函数的使用与模拟实现
    • 1.1 函数介绍
    • 1.2 使用示例
    • 1.3 模拟实现
  • 2. memmove函数的使用与模拟实现
    • 2.1 函数介绍
    • 2.2 使用示例
    • 2.3 模拟实现
  • 3. memset函数的使用
    • 3.1 函数介绍
    • 3.2 使用示例
  • 4. memcmp函数的使用
    • 4.1 函数介绍
    • 4.3 使用示例

在这里插入图片描述

🔥个人主页:@月夜的风吹雨
🎥作者简介: C++研发方向学习者
📖个人专栏:《C语言》
🌄人生格言: 任何一个伟大的思想,都有一个微不足道的开始。

前言:在C语言编程中,对内存的直接操作是非常常见且重要的任务。为了高效、安全地处理内存数据,C标准库提供了一系列内存操作函数。本文将详细介绍memcpy、memmove、memset和memcmp这四个函数的使用方法、区别以及模拟实现,帮助大家更好地理解并掌握这些基础但强大的工具。

1. memcpy函数的使用与模拟实现

1.1 函数介绍

memcpy函数的原型如下:
在这里插入图片描述
在这里插入图片描述
该函数用于将source指向的内存地址开始的num个字节数据复制到destination指向的内存地址。

注意memcpy不会因为遇到'\0'而停止复制,且如果源地址与目标地址存在重叠,其行为是未定义的

1.2 使用示例

#include <stdio.h>
#include <string.h>int main() {int arr1[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int arr2[10] = {0};memcpy(arr2, arr1, 20); // 复制前20个字节(即5个int)for (int i = 0; i < 10; i++) {printf("%d ", arr2[i]);}return 0;
}

输出结果:

1 2 3 4 5 0 0 0 0 0

1.3 模拟实现

void* my_memcpy(void* dst, const void* src, size_t count) {void* ret = dst;assert(dst && src); // 确保指针有效while (count--) {*(char*)dst = *(char*)src;dst = (char*)dst + 1;src = (char*)src + 1;}return ret;
}

在while循环中为何不能使用*(char*)dst++ = *(char*)src++? 这是因为对dest的 (char*)强制类型转换只是临时性的,执行后dest仍会恢复为void类型指针,而void指针不支持自增运算。

🔍注意:该实现是按字节从前向后复制,适用于非重叠内存区域。

2. memmove函数的使用与模拟实现

2.1 函数介绍

memmove函数的原型与memcpy相同:
在这里插入图片描述
在这里插入图片描述
memcpy不同的是,memmove可以处理内存重叠的情况。它是更安全的复制函数。

2.2 使用示例

#include <stdio.h>
#include <string.h>int main() {int arr1[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};memmove(arr1 + 2, arr1, 20); // 将前5个元素复制到第3个位置开始for (int i = 0; i < 10; i++) {printf("%d ", arr1[i]);}return 0;
}

输出结果:

1 2 1 2 3 4 5 8 9 10

2.3 模拟实现

void* my_memmove(void* dest, const void* src, size_t num) {assert(dest && src);void* ret = dest;if ((char*)dest <= (char*)src || (char*)dest >= (char*)src + num) {//往前交换,先交换src前面的字节while (num--) {*(char*)dest = *(char*)src;dest = (char*)dest + 1;src = (char*)src + 1;}}else {//先定位交换的位置dest = (char*)dest + num - 1;src = (char*)src + num - 1;//往后交换,先交换src后面的字节while (num--) {*(char*)dest = *(char*)src;dest = (char*)dest - 1;src = (char*)src - 1;}}return ret;
}

🛠️ 提示: memmove通过判断内存是否重叠,选择不同的复制方向,确保数据正确性。

3. memset函数的使用

3.1 函数介绍

memset函数的原型如下:

在这里插入图片描述

在这里插入图片描述
该函数用于将ptr指向的内存区域的前num个字节设置为value的值(按字节设置)。

3.2 使用示例

#include <stdio.h>
#include <string.h>int main() {char str[] = "hello world";memset(str, 'x', 6); // 将前6个字符设为'x'printf("%s", str);return 0;
}

输出结果:

xxxxxxworld
  • 💡 用途: 常用于初始化数组、清空缓冲区等。

4. memcmp函数的使用

4.1 函数介绍

memcmp函数的原型如下:
在这里插入图片描述
在这里插入图片描述
该函数用于比较ptr1ptr2指向的内存区域的前num个字节的内容。

返回值含义
<0ptr1小于ptr2
0内容相等
>0ptr1大于ptr2

4.3 使用示例

#include <stdio.h>
#include <string.h>int main() {char buf1[] = "DWga0tP12df0";char buf2[] = "DWGA0TP12DF0";int n = memcmp(buf1, buf2, sizeof(buf1));if (n > 0) printf("'%s' > '%s'\n", buf1, buf2);else if (n < 0) printf("'%s' < '%s'\n", buf1, buf2);else printf("'%s' == '%s'\n", buf1, buf2);return 0;
}

输出结果:

'DWga0tP12df0' > 'DWGA0TP12DF0'
  • 📌 注意: 比较是按字节进行的,不考虑字符串结束符。

理解并熟练使用这些内存操作函数,是每一位C语言程序员的基本功。它们不仅在底层开发中广泛应用,也在高性能计算、嵌入式系统等领域中发挥着重要作用。

📚更多C语言教程,欢迎关注我的CSDN博客!
👉月夜的风吹雨 《C语言》

http://www.dtcms.com/a/590844.html

相关文章:

  • 连云港建设部网站济宁网站开发
  • 中国建设银行黑龙江支行官方网站桂林市区面积
  • 崇州网站建站iis默认网站无法访问
  • 代码随想录-day30
  • 扬州整站seo镇平哪家网站做的好
  • 建设银行的官方网站电话wordpress 建站 教程视频
  • 大庆医院网站建设方案企云网站建设
  • 厦门市建设局网站网络培训心得体会1000字
  • 杭州高端网站建设排名邯郸信息港发布信息
  • 佛山商城网站建设wordpress标题重复
  • 常州企业网站建设公司做网站怎么做多少钱
  • 外贸网站免费建站wordpress主题更换字体教程 hu
  • 传送门网站是怎么做的高端大气的企业网站模板
  • 给自己的公司做网站怎么做好做淘宝详情的网站
  • MBSE助力多行业实现正向研发突破
  • 全屏网站模板制作教程如何做收费会员定制网站
  • 站长网站被跳转怎么办华阴市住房和城乡建设局网站
  • 小学常识凸显须重新认识测度论和“点无大小”公理
  • 北京鑫创网站建设图表设计 网站
  • 英语语法大全
  • 深圳宝安沙井网站建设wordpress类别图标
  • 网站导航面包屑房地产怎么白手起家
  • 蓝汛 - 调通话,合ep
  • 杭州做网站公司哪家好外包公司什么意思
  • 网站开发付款方式莱芜网站建设价格低
  • html5 音乐网站专业网站设计网络服务
  • Windows开始菜单定制工具丨个性化外观丨磁贴风格恢复
  • 有没有做logo的网站公司网站 百度
  • 【Java常用API】----- 字符串 与 链式编程
  • 做网站优化选阿里巴巴还是百度班级网站设计与制作