- 论坛徽章:
- 0
|
回复 1# nanjingnew4
typedef int (*compare)(const void *x, const void *y);
的含义是:用“compare”这个单词来作为类型 “int (*)(const void *, const void*)” 的等价(简写)形式。也就是说compare是一个类型,而不是别的什么(比如你可能会以为的:函数指针)。
所以你代码中的 void my_sort(void *data, int length, int size, compare){ ... ... } 是错误的,因为你在定义(而不是声明)函数时,没有提供“形参”,只是提供了形参的类型(compare)。
所以正确的做法是 void my_sort(void *data, int length, int size, compare comp_fun){ ... ... },或者你不提供 typedef int (*compare)(const void *x, const void *y);
那么你就应该这样干:void my_sort(void *data, int length, int size, int (*comp_fun)(const void*, const void*)){ ... ... }。个人理解,仅供参考。 |
|