我正在尝试做一个老师给我的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/

10-12 04:16