ヘッダーファイルには、次の行があります。
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);
では、このメソッドはどのように構築されますか?