首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

bcmp()函数是不是存在于string.h头文件中

2013-08-29 
bcmp()函数是否存在于string.h头文件中?#include string.h#include stdio.hmain(){char a[50]sdjklg

bcmp()函数是否存在于string.h头文件中?

#include <string.h>
#include <stdio.h>
main()
{


char a[50]="sdjklgjdflgd!*&@";
char b[50]="sdjklgjeflgd!*&@";
if(bcmp(a,b,5)==0)
{
printf("first 5 bytes same.\n");
}
else
{
printf("first 5 bytes not same.\n");
}
if(bcmp(a,b,10)==0)
{
printf("first 10 bytes same.\n");
}
else
{
printf("first 10 bytes not same.\n");
}

}

我在实际编译的话报错, error LNK2019: 无法解析的外部符号 _bcmp,该符号在函数 _main 中被引用。
我去百度了一下string.h看了一下并没有bcmp()这个函数。我看的书是LinuxC编程。http://www.cnblogs.com/hanxi/archive/2010/11/30/1892008.html这个博客又说有这个函数。
求解。 C 函数 string.h
[解决办法]

 #include <strings.h>

 int bcmp(const void *s1, const void *s2, size_t n);

[解决办法]
原来在string.h后来为了符合标准移到strings.h,参看下面说明:

BCMP(3)                FreeBSD Library Functions Manual                BCMP(3)

NAME
     bcmp -- compare byte string

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <strings.h>

     int
     bcmp(const void *b1, const void *b2, size_t len);

DESCRIPTION
     The bcmp() function compares byte string b1 against byte string b2,
     returning zero if they are identical, non-zero otherwise.  Both strings
     are assumed to be len bytes long.  Zero-length strings are always identi-


     cal.

     The strings may overlap.

SEE ALSO
     memcmp(3), strcasecmp(3), strcmp(3), strcoll(3), strxfrm(3)

HISTORY
     A bcmp() function first appeared in 4.2BSD.  Its prototype existed previ-
     ously in <string.h> before it was moved to <strings.h> for IEEE Std
     1003.1-2001 (``POSIX.1'') compliance.


[解决办法]
The memcmp() function is preferred over this function. 

For maximum portability, it is recommended to replace the function call to bcmp() as follows: 



#define bcmp(b1,b2,len) memcmp((b1), (b2), (size_t)(len))


热点排行