qsort算法中的compare函数是类成员函数的问题
现在用类封了一个动态变长字符串数组,需要提供对其进行排序的功能.由于qsort中实际比较了要用类的内部成员,故将qsort封在算法内部了,但报错:
../include/var_keyword.h:71: no matches converting function
`_compare_line' to type `int (*) (const void *, const void *)'
../include/var_keyword.h:63: candidates are: int
keyword_var_t::_compare_line (const void *, const void *)
程序段:
//比较函数
inline int keyword_var_t::_compare_line(const void * k1, const void *k2)
{
char * p1=_buf+(*(kvsize_t *)k1);
char * p2=_buf+(*(kvsize_t *)k2);
return strcmp(p1, p2);
}
//sort
void keyword_var_t::_sort_keyword(void)
{
qsort(_array,_size,sizeof(kvsize_t),_compare_line);
}
为什么呢??帮个忙指点一下啦,谢谢:)