[c]代码库
#include <stdlib.h>
#include <stdio.h>
#define NELEMS(arr) (sizeof(arr) / sizeof(arr[0]))
int numarray[] = {123, 145, 512, 627, 800, 933};
int numeric ( const int *p1, const int *p2 )
{
return ( *p1 - *p2 );
}
int lookup ( int key )
{
int *itemptr;
/* The cast of (int(*)(const void *,const void*))
is needed to avoid a type mismatch error at
compile time */
itemptr = bsearch ( &key, numarray, NELEMS ( numarray ),
sizeof ( int ), ( int ( * ) ( const void *,const void * ) ) numeric );
return ( itemptr != NULL );
}
int main ( void )
{
if ( lookup ( 512 ) )
printf ( "512 is in the table.\n" );
else
printf ( "512 isn't in the table.\n" );
return 0;
}