在头文件中,我有以下行:
typedef int comparator(int* left, int* right);
但是当我尝试为它编写一个函数定义时:
int comparator (int* left, int* right){
if(left<right) {
return 1;
} else if(right>left) {
return -1;
} else {
return 0;
}
}
我得到的错误是:
file.c:10:错误:“比较器”重新声明为不同类型的符号
该函数必须是 typedef 的,因为稍后在头文件中它会在方法原型中使用,如下所示:
struct bst_node** search(struct bst_node** root, comparator compare, void* data);
那么这个方法是如何构造的呢?