69,371
社区成员
发帖
与我相关
我的任务
分享
typedef int (*compare)(const void *x, const void *y);
int my_compare(const void *x, const void *y){
const int *a=(int *)x;
const int *b=(int *)y;
if(*a>*b)
return 1;
if(*a==*b)
return 0;
return -1;
}
// -- compare conmpareFunc是不是要求compareFunc的函数原型返回值必须是compare类型??
//也就是说my_compare这个函数返回值应该是个指针,指向另一个函数,该函数的参数是(const void *, const void *)
void my_sort(void *data, int length, int size, compare compareFunc){
char *d1,*d2;
//do something
if(compareFunc(d1,d2)<0){
//do something
}else if(compareFunc(d1,d2)==0){
//do something
}
else{
//do something
}
//do something
}
int main(int argc, char **argv){
int arr={2,4,3,656,23};
// 传递my_compare的地址
my_sort(arr, 5, sizeof(int), my_compare);
//do something
return 0;
}