繁体   English   中英

使用qsort组织struct(C)的vec

[英]Using qsort to organize vec of struct (C)

我正在尝试使用qsort来组织一个vec。 但是我遇到了cmpfunc vec是结构的vec。 结构非常简单,它有一个字符串和一个数字。 我想按号码组织。

    int cmpfunc (const void *a, const void *b)
    {
        Item i = *((Item*) a);
        Item j = *((Item*) b);
        if (i->acc < j->acc)
            return 1;
        if (i->acc > j->acc)
            return -1;
    }

qsort(vec, max, sizeof(Item), cmpfunc);

我收到这个warning: control reaches end of non-void function [-Wreturn-type] }

你只需要在if语句中返回,你需要在函数的底部返回它无论如何都可以得到它:

int cmpfunc (const void *a, const void *b)
{
    Item i = *((Item*) a);
    Item j = *((Item*) b);
    if (i->acc < j->acc)
        return 1;
    if (i->acc > j->acc)
        return -1;
    return 0; 
}

或者这也会起作用:

int cmpfunc (const void *a, const void *b)
{
    Item i = *((Item*) a);
    Item j = *((Item*) b);
    if (i->acc < j->acc)
        return 1;
    else
        return -1;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM