1 一个线性查找函数的泛型实现
example1:
int lsearch (int key, int array[], int size)
{
for (int i =0; i< size; i++)
{
if (array[i] == key)
{
return i;
}
}
return -1;
}
相应的泛型实现:
void* lsearch ( void* key, void* base, int n, int elemSize)
{
for (int i=0; i<n; i++)
{
void* elemAddr = (char*) base + i*elemSize ;//实现原来数组中的地址偏移,(char *) 可以保证编译不出错
if (memcmp(key, elemAddr, elemSize) ==0) //使用内存比较函数
return elemAddr;
}
return NULL;
}
斯坦福编程范笔记,day10.30.18
最新推荐文章于 2022-09-01 15:59:40 发布