Что означает предупреждение «разная ширина из-за прототипа»?

Код, генерирующий предупреждение, передающий аргумент 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, поскольку одним из критериев маркировки для назначения является отсутствие ошибок или предупреждений с этой командой.

Спасибо.

7
задан Adam M-W 1 April 2011 в 06:13
поделиться