昨天导师甩给我们一个项目案例,让我们自己去看一看熟悉一下项目内容,我看到了这个项目里面大量使用memset(sBuf,0,sizeof(sBuf));这一块内存填充的代码,于是回想起以前查过Mem系列函数的具体用法。整理整理。

函数名称:   memset

函数原型:   void *memset(void *s, int ch, size_t n);

函数功能:   在一段内存块中填充某个给定的值,是对较大的结构体或数组进行清零操作的最快方法。

函数返回: void

参数说明: void *s — 待初始填充的内存首地址
      int ch — 待填充的ASCII码
      size_t n — 待初始化填充的字节个数

补充:不要对结构体使用memset赋非0以外的值,这很有可能会使得结构体内部的结构被破坏。

函数名称: memcpy

函数原型: void *memcpy(void *dest, const void *src,size_t n);

函数功能: 内存区段拷贝;将src指向内存地址的连续N个指针位置的内容拷贝至dest指针指向的位置

函数返回: void

参数说明: dest — 目的内存空间指针
      src — 源内存空间指针
      n — 拷贝指针位置个数

补充:使用memcpy对一段内存进行替换的时候要保证前两参数分别为目的地址和源地址或者指针

函数名称: memmove

函数原型: void *memmove(void *dest, const void *src,size_t n);

函数功能: memmove用于从src拷贝n个单位长度到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,但复制后src内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同

      (在我个人使用的过程中并没发现过这两个函数的区别  - -||| )(快回去把,别丢人了,菜是原罪  )

函数返回: void

参数说明: dest — 目的内存空间指针
      src — 源内存空间指针
      n — 移动指针位置个数

函数名称: memcmp

函数原型: int memcmp (const void *S1, const void *S2, size_t size)

函数功能: 用于比较内存数据S1与S2的前size个字符

函数返回: 从指针第一个字符开始比较,如果S1,S2完全相同返回0,如果S1[i]大于S2[i]则跳出返回-1,如果S1[i]小于S2[i]则跳出返回1

参数说明: S1—待比较内存数据1

      S2—待比较内存数据2

      size—比较内存数据个数

函数名称:_memicmp

函数原型:int _memicmp (const void *S1, const void *S2, size_t size)

函数功能:用于比较内存数据S1与S2的前size个字符,如若相同,返回0

函数返回:如果S1,S2相同返回0,不相同返回两个字符串第一个出现不同地方的字符差值

     if(s1[i]!=s2[i]!) return s1[i]-s2[i];

补充:_memicmp不区分字母大小写,主要用于英文字符判断

Mem系列函数介绍及案例实现的更多相关文章

  1. openssl之EVP系列之13---EVP_Open系列函数介绍

    openssl之EVP系列之13---EVP_Open系列函数介绍     ---依据openssl doc/crypto/EVP_OpenInit.pod翻译和自己的理解写成     (作者:Dra ...

  2. openssl之EVP系列之12---EVP_Seal系列函数介绍

    openssl之EVP系列之12---EVP_Seal系列函数介绍     ---依据openssl doc/crypto/EVP_SealInit.pod翻译和自己的理解写成     (作者:Dra ...

  3. openssl之EVP系列之11---EVP_Verify系列函数介绍

    openssl之EVP系列之11---EVP_Verify系列函数介绍     ---依据openssl doc/crypto/EVP_VerifyInit.pod翻译和自己的理解写成     (作者 ...

  4. openssl之EVP系列之10---EVP_Sign系列函数介绍

    openssl之EVP系列之10---EVP_Sign系列函数介绍     ---依据openssl doc/crypto/EVP_SignInit.pod翻译     (作者:DragonKing, ...

  5. 转: OVER() 系列函数介绍

    OVER(PARTITION BY)函数介绍 开窗函数               Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返 ...

  6. 线程模型、pthread 系列函数 和 简单多线程服务器端程序

    一.线程有3种模型,分别是N:1用户线程模型,1:1核心线程模型和N:M混合线程模型,posix thread属于1:1模型. (一).N:1用户线程模型 “线程实现”建立在“进程控制”机制之上,由用 ...

  7. Python开发【第三章】:Python函数介绍

    一. 函数介绍 1.函数是什么? 在学习函数之前,一直遵循面向过程编程,即根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复 ...

  8. 从简单需求到OLAP的RANK系列函数

    同事问了一个非常简单的问题,怎么取出每个partition里面另外一个列的最小值? create table t1 (int c1, int c2);   假如按照c2分区,0-10,10-20,20 ...

  9. linux tricks 之VA系列函数.

    VA函数(variable argument function),参数个数可变函数,又称可变参数函数.C/C++编程中,系统提供给编程人员的va函数很少.*printf()/*scanf()系列函数, ...

随机推荐

  1. 论文翻译——Lattice indexing for spoken term detection

    第II节简要介绍与本文有关的先前工作第III节介绍文中使用的定义以及术语 第IV节介绍如何从原始ASR lattices中生成倒排索引结构 第V节详细介绍了ASR结构以及实验使用的数据 第VI节提供了 ...

  2. Laravel框架中打印sql

     在使用Laravel框架的时候,调试的时候,需要将查询的SQL输出校验,这是需要将SQL打印出来. 一.方法 DB::connection()->enableQueryLog();  // 开 ...

  3. maven配置及IDEA配置maven环境

    一. maven的下载及配置 1. maven下载地址 可以在网址:https://maven.apache.org/download.cgi下载最新版本的maven 2. maven文件解压缩 解压 ...

  4. 20175306 MyCP博客总结

    课后必做题:MyCP总结 cp命令了解: · 作用:cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中.若同 ...

  5. 安卓触控一体机的逆袭之路_追逐品质_支持APP软件安卓

    显示性能参数 接口:RGB信号 分辨率:1024*600 比例16:9 显示尺寸(A.A.):222.72*(W)*125.28(H)mm 外围尺寸:235.0(W)*143.0(H)*4.5(T)m ...

  6. 2018-2019-2 《网络对抗技术》 Exp0 Kali安装 20165221 Week1

    2018-2019-2 <网络对抗技术> Exp0 Kali安装 20165221 Week1 安装Vmware 上学期已经安装过,不再赘述. 如需安装,可参考如何安装vmware 下载v ...

  7. Vue-计算属性和侦听属性

    复杂逻辑应使用计算属性而不应写在插值表达式{{ }}里 <div id="app"> 原值:{{ msg }} <br> 翻转后的值:{{ reverseM ...

  8. Debian 命令行方式配置网络

    一.对于有线网络,如果默认没有安装图形界面,进入了 multi-user.target中时,是没有使用NetworkManager管理网络的,此时需要手动配置才能上网 首先得到网卡名称:ip addr ...

  9. ARDUINO驱动LCD1602 (利用库函数)

    LCD 1602简介 工业字符型液晶,能够同时显示16x02即32个字符.(16列2行) 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母.数字.符号等的点阵型液晶模块.它由若干个5X7或 ...

  10. python3排序 sorted(key=lambda)

    使用python对列表(list)进行排序,说简单也简单,说复杂也复杂,我一开始学的时候也搞不懂在说什么,只能搜索一些英文文章看看讲解,现在积累了一些经验,写在这里跟大家分享,我们通过例子来详细解释一 ...