46 lines
1.5 KiB
C
46 lines
1.5 KiB
C
|
/***
|
||
|
*bsearch_s.c - do a binary search
|
||
|
*
|
||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
*
|
||
|
*Purpose:
|
||
|
* defines bsearch_s() - do a binary search an an array
|
||
|
*
|
||
|
*******************************************************************************/
|
||
|
|
||
|
/***
|
||
|
*char *bsearch_s() - do a binary search on an array
|
||
|
*
|
||
|
*Purpose:
|
||
|
* Does a binary search of a sorted array for a key.
|
||
|
*
|
||
|
*Entry:
|
||
|
* const char *key - key to search for
|
||
|
* const char *base - base of sorted array to search
|
||
|
* unsigned int num - number of elements in array
|
||
|
* unsigned int width - number of bytes per element
|
||
|
* int (*compare)() - pointer to function that compares two array
|
||
|
* elements, returning neg when #1 < #2, pos when #1 > #2, and
|
||
|
* 0 when they are equal. Function is passed pointers to two
|
||
|
* array elements, together with a pointer to a context.
|
||
|
* void *context - pointer to the context in which the function is
|
||
|
* called. This context is passed to the comparison function.
|
||
|
*
|
||
|
*Exit:
|
||
|
* if key is found:
|
||
|
* returns pointer to occurrence of key in array
|
||
|
* if key is not found:
|
||
|
* returns NULL
|
||
|
*
|
||
|
*Exceptions:
|
||
|
* Input parameters are validated. Refer to the validation section of the function.
|
||
|
*
|
||
|
*******************************************************************************/
|
||
|
|
||
|
#ifdef __USE_CONTEXT
|
||
|
#error __USE_CONTEXT should be undefined
|
||
|
#endif /* __USE_CONTEXT */
|
||
|
|
||
|
#define __USE_CONTEXT
|
||
|
#include "bsearch.c"
|