я получаю эту ошибку и не могу исправить, я еще нуб, если кто-то может мне помочь, я буду благодарен вам, этот код исходит от xmplayer из libxenon (для 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;
}
}
}
else if
, но нетelse
. Компилятор может зацикливаться на этом, даже если вы обратились ко всем возможным значениям. - person chris   schedule 04.11.2012I am a noob..
вот для начала: Предупреждение не является ошибкой - person Aniket Inge   schedule 04.11.2012-Werror
. Я знаю, что в заголовке написано предупреждение, но я не удержался. - person chris   schedule 04.11.2012return 0;
в конец функции заглушит предупреждение, но это решит проблему только в том случае, если0
на самом деле является правильным значением для возврата, если оно достигает этой точки, или если вы можете доказать средствами, недоступными для компилятора, что он никогда не достигнет этой точки. - person Keith Thompson   schedule 04.11.2012BROWSERENTRY*
, инициализированных изf1
иf2
, а не везде. - person Pete Becker   schedule 04.11.2012