我正在尝试做一个老师给我的C语言练习,但是我被困在这里
这是我的代码:
typedef struct First_s
{
double a;
double b, c;
double d;
} First_t;
typedef struct Second_s
{
char e[10];
long f;
First_t g;
} Second_t;
int compare(Second_t *x, Second_t *y)
{
if(x.g.b >y.g.b){
return 1;
}else{
return 0;
}
}
void sortList(Second_t list[], long len, int (*compare) (Second_t *a, Second_t *b)){
}
谁能告诉我如何使用此* compare函数。
我在互联网上寻找它,但是我真的不知道如何找到它,因为我不知道这种函数的调用方式。
谢谢 :)
最佳答案
由于篇幅太长,我不得不切换到答案。
如果从您上面的内容中出现,您想要获得类似
Second_t somelist [5000000000] ;
. . . .
sortList (somelist, 5000000000, compare) ;
您无需说明,但上下文表明目标是拥有一个通用的排序函数,该函数可以处理不同的比较方法。比较方法被指定为sortList()的函数参数。
Second_t a, b ;
if (compare (&a, &b))
应该管用。
关于c - 虚函数(int(* compare)(a,b)),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23974426/