Код, генерирующий предупреждение, передавая аргумент 1 из isHex с различной шириной из-за прототипа:
/* Checks if a character is either 0-9 or A-F */
int isHex(char ch) {
return isdigit(ch) || (ch >= 65 && ch <= 70);
}
/* Checks if a string only contains numeric characters or A-F */
int strIsHex(char * str) {
char *ch;
size_t len = strlen(str);
for(ch=str;ch<(str+len);ch++) {
if (!isHex(*ch)) return 0;
}
return 1;
}
Что это значит, не должны ли значения char
быть одинаковой ширины? Как я могу привести их к той же ширине, чтобы предотвратить это предупреждение?
Кстати, команда gcc была: gcc.exe -std=c99 -fgnu89-inline -pedantic-errors -Wno-long-long -Wall -Wextra -Wconversion -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -fshort-enums -gstabs -l"C:\program files\quincy\mingw\include" -o main.o -c main.c
Я не могу удалить какие-либо параметры предупреждений из gcc, поскольку одним из критериев маркировки для назначения является отсутствие ошибок или предупреждений с помощью этой команды.
Спасибо.