gpt4 book ai didi

c++ - 警告 : control reaches end of non-void function (c++)

转载 作者:太空狗 更新时间:2023-10-29 20:05:28 24 4
gpt4 key购买 nike

我收到这个错误并且无法修复,我还是菜鸟,如果有人能帮助我,我会感谢你此代码来自 libxenon 的 xmplayer(用于 jtag xbox)

(我尝试搜索类似的错误,但我找不到问题所在)

  int FileSortCallback(const void *f1, const void *f2) {
/* Special case for implicit directories */
if (((BROWSERENTRY *) f1)->filename[0] == '.' || ((BROWSERENTRY *) f2)->filename[0] == '.') {
if (strcmp(((BROWSERENTRY *) f1)->filename, ".") == 0) {
return -1;
}
if (strcmp(((BROWSERENTRY *) f2)->filename, ".") == 0) {
return 1;
}
if (strcmp(((BROWSERENTRY *) f1)->filename, "..") == 0) {
return -1;
}
if (strcmp(((BROWSERENTRY *) f2)->filename, "..") == 0) {
return 1;
}
}

/* If one is a file and one is a directory the directory is first. */
if (((BROWSERENTRY *) f1)->isdir && !(((BROWSERENTRY *) f2)->isdir)) return -1;
if (!(((BROWSERENTRY *) f1)->isdir) && ((BROWSERENTRY *) f2)->isdir) return 1;

//Ascending Name
if (XMPlayerCfg.sort_order == 0) {
return stricmp(((BROWSERENTRY *) f1)->filename, ((BROWSERENTRY *) f2)->filename);
}
//Descending Name
else if (XMPlayerCfg.sort_order == 1) {
return stricmp(((BROWSERENTRY *) f2)->filename, ((BROWSERENTRY *) f1)->filename);
}
//Date Ascending
else if (XMPlayerCfg.sort_order == 2) {
if ( ((BROWSERENTRY *) f2)->date == ((BROWSERENTRY *) f1)->date) { //if date is the same order by filename
return stricmp(((BROWSERENTRY *) f2)->filename, ((BROWSERENTRY *) f1)->filename);
} else {
return ((BROWSERENTRY *) f1)->date - ((BROWSERENTRY *) f2)->date;
}
}
//Date Descending
else if (XMPlayerCfg.sort_order == 3) {
if ( ((BROWSERENTRY *) f2)->date == ((BROWSERENTRY *) f1)->date) { //if date is the same order by filename
return stricmp(((BROWSERENTRY *) f1)->filename, ((BROWSERENTRY *) f2)->filename);
} else {
return ((BROWSERENTRY *) f2)->date - ((BROWSERENTRY *) f1)->date;
}
}
}

最佳答案

编译器分析您的代码,发现将对 05 之间的所有 sort_order 值执行 return 语句,包括.但是,如果 sort_order 为负数或大于 5,则代码将到达函数末尾而没有 return 语句;这就是编译器发出警告的原因。

请注意,由于代码其他部分的限制,可能无法将 sort_order 设置为负数或大于 5 的数字。然而,编译器不知道这些,所以它认为 sort_order 可能有任何值。

要解决此问题,请在末尾添加无条件返回语句。

关于c++ - 警告 : control reaches end of non-void function (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13216022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com