bzero()与 memset()等的区别
BZERO()等的区别
bzero
原型:
用法:
功能:置字节字符串s的前n个字节为零。
说明:bzero无返回值。
举例: // bzero.c
#include <syslib.h>
#include <string.h>
int main()
{
struct
{
int a;
char s[5];
float f;
} tt;
char s[20];
bzero(&tt,sizeof(tt)); // struct initialization to zero bzero(s,20);
clrscr();
printf("Initail Success");
getchar();
return 0;
}
========================================
memset
原型:
用法:
功能:把buffer所指内存区域的前count个字节设置成字符c。
说明:返回指向buffer的指针。
举例: // memset.c
#include <syslib.h>
#include <string.h>
int main()
{
char *s="Golden Global View";
clrscr();
memset(s,'G',6);
printf("%s",s);
getchar();
return 0;
}
=======================================
setmem
原型:
用法:
功能:把buf所指内存区域前count个字节设置成字符ch。
说明:返回指向buf的指针。
举例: // setmem.c
#include <syslib.h>
#include <string.h>
int main()
{
char *s="Golden Global View";
clrscr();
setmem(s,6,'G');
printf("%s",s);
getchar();
return 0;
}
=======================================
综述:
bcopy和memcpy、bzero和memset、bcmp和memcmp的差别在哪里?
bcopy、bzero和bcmp是传统BSD的函数,属于POSIX标准;mem*是C90(以及C99)标准的C函数。区别在于,如果你打算把程序弄到一个符合C90/C99,但是不符合POSIX标准的平台时,后者比较有优势。
NetBSD的代码中有很多地方使用mem*(他们更偏爱mem*,以利于移植),即使内核也是如此,而FreeBSD的内核中则尽量避免使用(希望尽可能避免在内核中出现较多的C函数)。如果你提交代码的话需要注意这些约定。
在memset和bzero初始化数据间,我很多时候选择bzero, memset的一个缺点是第二个参数和第三个参数需要记忆,需要记住哪个是值和哪个是大小(如果不想查手册的话), 不可以弄错。
bzero()和memset()
今天用到一个字符数组初始化函数,bzero(),因为比较生疏,于是在查本地的一个C/C++函数库的时候并未见此函数,于是便觉得自己拥有的CHM版的库函数软件包有点山寨了,可是当自己调试程序的时候却发现此函数始终通不过编译。被逼上网查它们的区别,得答案如下:
C has memset(), the Berkeley UNIX C library has bzero(). They are not
identical, and bzero() pre dates memset() but is not widely available (since
it's not part of standard C).
在LINUX平台上是支持bzero的,但是其并不在ANSI C中定义,也就是不属于C的库函数.
==========================================================================
From CSDN:
【问】网上查了是
#include <string.h>
但是在vc6.0 和vs2005下还是报错,说bzero没有定义
【答】确实没有
可以自己定义一个
- C/C++ code #define bzero(a, b) memset(a, 0, b)
bzero()是在linux平台下用的,可以用memset()函数代替,这样就跨平台了。哈哈...
实在要用就像楼上说的那样。
bzero()与 memset()等的区别相关推荐
- bzero 和memset的区别
bzero 原型:extern void bzero(void *s, int n); 用法:#include <string.h> 功能:置字节字符串s的前n个字节为零且包括'\0'. ...
- bzero与memset
bzero: 原型:void bzero(void *s, int n); 功能:置字节字符串s的前n个字节为零且包括'\0'. 说明:bzero无返回值,并且使用strings.h头文件,strin ...
- bzero和memset函数区别联系
bzero函数 函数原型:void bzero(void *s, int n): 头文件:#include <string.h> 功能:将字符串s的前n个字节置为0,一般来说n通常取siz ...
- 数组清空(bzero与memset)
#include <strings.h> 函数原型: void bzero(void *s, size_t n); 功能: 清空数组 参数: ...
- bzero 与 memset
一.bzero的介绍 1.bzero经常用来将一个数据字节进行清零,置字节字符串前n个字节为零且包括'\0'. 原型: NAME bzero - write zero-val ...
- C:bzero与memset
目录 1.bzero 2.memset 3.实例 1.bzero bzero函数声明如下: /* Set N bytes of S to 0. */ extern void bzero (void * ...
- 【note】fill函数和memset函数的区别和使用
memset函数 按照字节填充某字符 在头文件<cstring>里面 fill函数 按照单元赋值,将一个区间的元素都赋同一个值 在头文件<algorithm>里面 注意: fi ...
- 【C++】fill函数,fill与memset函数的区别
memset函数 按照字节填充某字符 在头文件<cstring>里面 fill函数 按照单元赋值,将一个区间的元素都赋同一个值 在头文件<algorithm>里面 因为mems ...
- bzero, memset ,setmem 区别
bzero 原型:extern void bzero(void *s, int n); 用法:#include <string.h> 功能:置字节字符串s的前n个字节为零. 说 ...
最新文章
- 2019年必须掌握的29个微服务面试问题(下)
- 最强观战指南 | Python分析热门夺冠球队(附源代码)
- linux下防火墙iptables原理及使用
- PPT 下载 | 龙创悦动游臣隽:数据在游戏行业的落地应用实践
- 【SpringBoot】服务器端主动推送SSE技术讲解
- 走的走的居然飞起来了……
- http://www.zhihu.com/question/24896283
- tf代码之tf.nn.conv2d_transpose
- 深入学习GridBagLayout
- Java实现:学生管理系统
- 【快速上手教程2】疯壳·开源编队无人机-硬件资源简介
- linux中的rar文件怎么打开方式,linux下怎么解压缩rar文件教程
- Typora配置smms图床
- 2019最新千峰PHP全套教程(最新完整)
- c语言保存mat图片的方法,把opencv Mat 按位存成bmp二值图像 (1bit 1pixel)
- Apache Kylin Buid Cube详细流程2
- 十四.Deepin Linux V20.7 插入耳机听不到声音的解决办法
- Arduino 1.44寸st7735s TFT+SD卡显示图片
- 三菱plc pwm指令_三菱电机PLC学习:高速指令
- 【第十三届蓝桥杯省赛B组】统计子矩阵 (枚举前缀和+双指针)
热门文章
- IOS: CoreData
- 【正点原子FPGA连载】第六章Petalinux设计流程实战摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南
- Ubuntu 20.10 引导修复(boot repair)
- 如何在iphone/ipad/itouch上设置新浪VIP邮箱
- 〖大前端 - 基础入门三大核心之CSS篇②〗- CSS选择器之标签选择器、id选择器、class选择器与原子类
- 第三章 项目立项管理
- error LNK1112
- 进入BeOS的花花世界 系列七
- Jmeter中参数化的使用
- error: ‘ULONG_MAX’ was not declared in this scope