c语言范式编程之lsearch

来源:互联网 发布:车牌号码测吉凶算法 编辑:程序博客网 时间:2024/05/21 12:48
#include<stdio.h>int cmpfn(void *elem1, void *elem2){    int *ip1 = elem1;    int *ip2 = elem2;    return *ip1 - *ip2;}void *lsearch(void *key, void *base ,int n, int elemSize, int (*cmpfn)(void *,void *)){    int i=0;for( i=0; i<n; i++){void *elemAddr = (char *)base + i*elemSize;if(cmpfn(key,elemAddr) == 0)return elemAddr;}return NULL;}int main(){    int array[] = {1,3,5,7,9,11,13,15,17,19};    int key1 = 13;    int key2 = 33;    int *find1 = NULL;    int *find2 = NULL;    find1 = lsearch(&key1,array,sizeof(array)/sizeof(int),sizeof(int),cmpfn);    find2 = lsearch(&key2,array,sizeof(array)/sizeof(int),sizeof(int),cmpfn);    printf("address of array is:%p\n",array);    printf("address of find1 is:%p\n",find1);    printf("address of find2 is:%p\n",find2);return 0;}