我的qsort使用stdlib.h中,如何将变量传递给函数?
void qsort (void* base, size_t num, size_t size,
int (*compar)(const void*,const void*));
下列方式
:
void myfun (float *arr, int n, float c) // value of c is changeable
{
...// some code
qsort(float *arr, n, sizeof(float), compareme);
...// some code
}
与
int compareme (const void * a, const void * b)
{
float tmp = f((float*)a, (float*)b, c); // f is some function, and how can I pass c here?
if (tmp < 0) return -1;
if (tmp == 0) return 0;
if (tmp > 0) return 1;
}
我怎样才能让c
在compareme
可用在这里?
谢谢!
你不能,因为[tag:C]不是词法范围。如果你可以切换到[tag:C++],你可以创建一个包含'c'的比较对象。 –
谢谢,我只能用c – Tim