typedef 函数,对这块不是很熟悉,求指点!!!

void list_sort (struct list *,
                list_less_func *, void *aux);
typedef bool list_less_func (const struct list_elem *a,
                             const struct list_elem *b,
                             void *aux);

static bool less_list(const struct list_elem* ewc1,
    const struct list_elem* ewc2, void* aux) {
    /* TODO */
    bool comparefunc=list_less_func(const struct list_elem* ewc1, const struct list_elem* ewc2, void* aux);
    if (comparefunc)
        return false;
    else
        return true;
}

void wordcount_sort(word_count_list_t* wclist,
    bool less(const word_count_t*, const word_count_t*)) {
    list_sort(&wclist->lst, less_list, less);
}

对函数typedef不太熟悉,求指点,问题如下:comparfunc那块出错了,谢谢!

word_count_p.c:105:22: error: expected expression before ‘list_less_func’
bool comparefunc=list_less_func(const struct list_elem* ewc1, const struct list_elem* ewc2, void* aux);
^~~~~~~~~~~~~~

bool comparefunc=list_less_func( ewc1, ewc2, aux);
这样写就可以了。

typedef配合函数一般是代替函数指针,你这个定义的语法,让人不解,另外这行代码:
bool comparefunc=list_less_func(const struct list_elem* ewc1, const struct list_elem* ewc2, void* aux);
调用函数时候是不需要把参数类型都写出来的,你应该好好看看c语言的基本语法,最好能提供比较全的程序,也好进行进一步判断。