我的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