通用CMP预处理器宏

时间:2014-04-07 12:02:57

标签: c

而不是为所有数值数据类型提供大量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);
}

等。对于您感兴趣的所有数值数据类型..

0 个答案:

没有答案