Код (Text): int process_user_command(char *cmd) { int i = -1; for (i=0; i<command_set[i] != NULL; i++) { if (command_set[i] == cmd) break; } return i; } gcc : /root/projects/blackoffice/drivers/blackpop/blackpop-driver.c:39: comparisons like X<=Y<=Z do not have their mathematical meaning Это почему?
дык... ожидается выражение, приводимое к булевому типу. а у вас здесь попытка после получения булева выражения сравнить его с NULL. каков в этом математический смысл? ps: если это Си, а не С++, то у меня сомнения по поводу валидности сравнения char* через операцию ==. так будут сравниваться сами указатели. может имеется ввиду strcmp/strcmpi ?
Телепатор нашёптывает, что должно быть либо так: Код (Text): for (i=0; i<command_set[i]; i++) либо так (что вероятнее всего): Код (Text): for (i=0; command_set[i] = NULL; i++)