您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言bcopy()函数:复制内存(字符串)

时间:12-30来源:作者:点击数:

头文件:#include <string.h>

bcopy() 函数用来复制内存(字符串),其原型为:
    void bcopy(const void *src, void *dest, int n);

【参数】src 为源内存块(字符串)指针,dest 为目标内存块(字符串)指针,n 为要复制的内存(字符串)的前 n 个字节长度。

bcopy()与memcpy()一样都是用来拷贝src 所指的内存内容前n 个字节到dest 所指的地址,不过参数src 与dest 在传给函数时是相反的位置。

bcopy() 不检查内存(字符串)中的空字节 NULL。

实际上,bcopy() 和 memcpy() 功能相同,用来复制内存块的前 n 个字节,但是 s1, s2 两个参数为指针,又很奇怪的位于 string.h 文件中,所以也可以用来复制字符串。

注意:bcopy() 不是标准函数,没有在ANSI中定义,笔者在VC6.0和MinGW5下编译没通过;据称Linux下的GCC支持,不过笔者没有亲测。鉴于此,还是使用 memcpy() 替代吧。

更多信息请查看:C语言bcopy()和memcpy()、bzero()和memset()、bcmp()和memcmp()几个函数的差别

笔者定义了一个宏,在VC6.0下编译通过,代码如下:

#include <stdio.h>
#include <string.h>
#define bcopy(a, b, c) memcpy(a, b, c)
main(){
    char dest[30] = "string(a)";
    char src[30] = "string\0string";
    int i;
    bcopy(src, dest, 30); //src 指针放在前
    printf("bcopy(): ");
  
    for(i = 0; i < 30; i++)
        printf("%c", dest[i]);
  
    memcpy(dest, src, 30); //dest 指针放在钱
    printf("\nmemcpy() : ");
  
    for(i = 0; i < 30; i++)
        printf("%c", dest[i]);
}

执行结果:

bcopy() : string(a)
memcpy() :string(a)
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门