昨天导师甩给我们一个项目案例,让我们自己去看一看熟悉一下项目内容,我看到了这个项目里面大量使用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. 基本DFS与BFS算法(C++实现)

    样图: DFS:深度优先搜索,是一个不断探查和回溯的过程,每探查一步就将该步访问位置为true,接着在该点所有邻接节点中,找出尚未访问过的一个,将其作为下个探查的目标,接着对这个目标进行相同的操作,直 ...

  2. 【nginx】配置

    server { listen 80; server_name hocalhost; location / { root /usr/share/nginx/html; index index.html ...

  3. andriod webview和h5

    1.WebBrowserActivity extends BaseActivity 2.setContentView(R.layout.activity_web_html); <WebView ...

  4. 【题解】狼抓兔子—BZOJ1001。

    (胡扯时间)今天炒鸡无聊就打算BZOJ开始从第一道题开始顺着打,这样未来一段时间内也就有事干了.结果发现A+B切掉后就遭遇了一个"小小"的瓶颈(真不友好. 好了说题说题.看题第一眼 ...

  5. 实验吧 deeeeeeaaaaaadbeeeeeeeeeef-20

    题目描述: 图片是正确的吗? 解题思路: 这道题很有意思,常规的隐写思路没有线索,结果问题出现在照片的分辨率上,tEXtSource iPhone 5的后置摄像头是3264×2448的分辨率,前置摄像 ...

  6. window10:jdk 8下载和安装步骤

    window10:jdk 8下载和安装步骤 点击链接:https://blog.csdn.net/qq_39720249/article/details/80721719

  7. 3D Slicer中文教程(八)—导出STL文件

    一.STL文件简介 STL(立体平版印刷术的缩写)是由3D Systems创建的立体平版印刷CAD软件原生的文件格式STL有“标准三角语言”和“标准镶嵌语言”等几个事后回溯.这种文件格式是由许多其他软 ...

  8. 项目Alpha冲刺(团队)-第一天冲刺

    格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目Alpha冲刺(团队)-代码规范.冲刺任务与计划 团队名称:为了交项目干杯 作业目标:描述第一天冲刺的项目进展.问题困难.心得体会 ...

  9. 11:57:24 [org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1] WARN o.apache.kafka.clients.NetworkClient - [Consumer clientId=consumer-2, groupId=jiatian_api] 3 partitions have leader……

    错误如下: 11:57:24 [org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1] WARN  o.apache.kaf ...

  10. 初学python之路-day13

    一.函数的嵌套定义 # 概念:在一个函数的内部定义另一个函数 # 为什么要有函数的嵌套定义: # 1)函数fn2想直接使用fn1函数的局部变量,可以讲fn2直接定义到fn1的内部,这样fn2就可以直接 ...