bzero源码:
void
bzero(s1, n)
void *s1;
unsigned n;
{
register char *t = s1;
while (n != 0) {
*t++ = 0;
n--;
}
} bcopy源码如下:
void
bcopy(s1, s2, n)
const void *s1;
void *s2;
unsigned n;
{
register const char *f = s1;
register char *t = s2;
while (n != 0) {
*t++ = *f++;
n--;
}
} bcmp源码如下:
int
bcmp(b1, b2, length)
const void *b1, *b2;
register size_t length;
{
register char *p1, *p2;
if (length == 0)
return(0);
p1 = (char *)b1;
p2 = (char *)b2;
do
if (*p1++ != *p2++)
break;
while (--length);
return(length);
} bzero函数
原型:extern void bzero(void *s, int n);
用法:#include
功能:将以地址s开头的的前n个字节为零。
说明:bzero无返回值。bzero只能在linux下调用。在memset和bzero初始化数据间,我很多时候选择bzero, memset的一个缺点是第二个参数和第三个参数需要记忆,需要记住哪个是值和哪个是大小(如果不想查手册的话), 不可以弄错。
bcopy
原型:extern void bcopy(const void *src, void *dest, int n);
用法:#include
功能:将字符串src的前n个字节复制到dest中
说明:bcopy不检查字符串中的空字节NULL,函数没有返回值。
目标和源的位置与memcpy和strcpy不同。
bcmp
原型:extern int bcmp(const void *s1, const void *s2, int n);
用法:#include
功能:比较字符串s1和s2的前n个字节是否相等
说明:如果s1=s2或n=0则返回零,否则返回非零值。bcmp不检查NULL。
本文介绍了C语言中两个重要的内存操作函数——bzero和bcmp。bzero函数用于将指定内存区域清零,bcmp函数则用于比较两块内存区域的内容。通过对这两个函数的源代码分析,读者可以更深入理解C语言底层内存操作的实现原理。
3247

被折叠的 条评论
为什么被折叠?



