内存操作

来源:互联网 发布:js获取当前浏览器宽度 编辑:程序博客网 时间:2024/05/01 14:19

使用下列函数在内存区域进行基于字节的工作。
 
 内存操作函数:
 
  1.memcppy 将指定的字符或指定数量的字符从一个 buffer 复制到另一个 buffer .
  
   void *_memccpy( void *dest, const void *src, int c, unsigned int count );
  
   所需头文件: <memory.h> or <string.h>
  
   返回值:
       如果字符 c 复制完成(而不是 count 指定的字符数量复制完成),返回一个指向目的buffer的指针。如 c 没有被复制(而是 count 指定的字符数量复制完成),返回NULL。
  
   参数:
       dest: 目的地址指针。
       src:  源地址指针。
       c:   被复制的最后一个字符。复制完这个字符就停止。
       count: 字符串数量。
      
   注解:
      _memccpy 函数从 src 复制0至多个字节到 dest ,当复制完指定的 c 字符或者复制完 count 个字符串后,停止。
      
  2.memcpy 将指定数量的字符从一个 buffer 复制到另一个 buffer 。
 
   void *memcpy( void *dest, const void *src, size_t count );
  
   所需头文件: <memory.h> or <string.h>
  
   返回值:
       返回目的 buffer 即 dest 的值。
      
   参数:
       dest: 目的地址指针。
       src:  源地址指针。
       count: 字符串数量。
  
   注解:
      memcpy 函数从 src 复制 count 指定的字节数至 dest 。如果源和目的重叠,此函数无法保证重叠区域的源字节在被复制后才被覆盖。使用 memmove 函数处理重叠区域。
      
   3.memchr 返回指定数量的字符里面找到的第一个指定字符的位置。
  
    void *memchr( const void *buf, int c, size_t count );
  
   所需头文件: <memory.h> or <string.h>
  
   返回值:
       如果成功,返回 buffer 中 c 第一次出现的位置,否则返回 NULL。
      
   参数:
      buf:  串所在 buffer 的指针。
      c:   待查找的字符。
      count: 串长。
  
   注解:
      memchr 函数在找到 buffer 中第一个 c 或者检查完 count 指定的范围后停止
  
   4._memicmp 比较两个 buffer 中指定数量的字符,不区分大小写。
  
    int _memicmp( const void *buf1, const void *buf2, unsigned int count );
   
   所需头文件: <memory.h> or <string.h>
  
   返回值:
       返回0则完全相同,返回>0值则 buf1>buf2 ,返回<0值则 buf2>buf1。
      
   参数:
      buf1: 串1所在 buffer 的指针。
      buf2: 串1所在 buffer 的指针。
      count: 比较字节数量。
  
   注解:
      _memicmp 函数按字节比较两个 buffer 中指定量的字符,不区分大小写。
     
   5.memcmp 同 _memicmp ,区别在于此函数区分大小写。
  
    int memcmp( const void *buf1, const void *buf2, size_t count );

   返回值:
       返回0则完全相同,返回>0值则 buf1>buf2 ,返回<0值则 buf2>buf1。

   6.memmove 从一个 buffer 复制指定量的字符到另一个 buffer,同 memcpy 区别在于两个 buffer 可以重叠,仍能保证源中的数据完整复制到目标中。
  
    void *memmove( void *dest, const void *src, size_t count );
   
   7.memset 用指定字符初始化 buffer 中指定数量的字节。
  
    void *memset( void *dest, int c, size_t count );
   
   所需头文件: <memory.h> or <string.h> 

      
   参数:
      dest: 待初始化的目的地址指针。
      c:   设定初始化的值。
      count: 被初始化的字节数。
  
   8._swab 交换数据的字节,并将他们存储到指定位置。
  
    void _swab( char *src, char *dest, int n );

   所需头文件: <stdlib.h>
  
   返回值:
       无。
      
   参数:
      src: 源数据位置。
      dest:交换后的数据存储位置。
      n:  被复制和交换的字节数。
  
   注解:
      _swab 函数将 src 中的 n 个字节复制并将每对相邻的字节交换,将结果存储到 dest中。n 需是偶数才可进行交换。该函数一般用于准备将二进制数据移植到与当前字节顺序不同的机器中。

原创粉丝点击