而不是为所有数值数据类型提供大量cmp类型函数
你可以使用预处理器,有类似的东西:
#define CMP(a, b) ((a > b) - (a < b))
然后:
int int_cmp(const void *a, const void *b)
{
const int *ia = (const int *)a; // casting pointer types
const int *ib = (const int *)b;
return CMP(*ia, *ib);
}
int double_cmp(const void *a, const void *b)
{
const double *ia = (const double *)a;
const double *ib = (const double *)b;
return CMP(*ia, *ib);
}
等。对于您感兴趣的所有数值数据类型..