Можно создать дубликат:
Problem compiling K&R exampleУказатель предупреждения типа несоответствие, например, от K & R C
В последнее время я работал мой путь через язык программирования C помощью K & Р.
В разделе 5.11 они охватывают указатели на функции и после ввода в их примере - реализации quicksort, где мы предоставляем указатель на compari son, которую мы хотим использовать - я получаю предупреждение от компилятора: несоответствие типа указателя в условном выражении. (Мой компилятор GCC 4.0.1 на OS X 10.5.6)
Строка из примера, который вызывает предупреждение является:
qsort((void **) lineptr, 0, nlines-1,
(int (*)(void*, void*))(numeric ? numcmp : strcmp));
Программа выполняется без segfaulting, но мне нравится smoosh каждое предупреждение Я могу или, по крайней мере, понять их причины.
Функция декларация numcmp выглядит следующим образом:
int numcmp(char *, char *);
Но согласно страницы руководства, stcmp имеет эту подпись:
int strcmp(const char *s1, const char *s2);
ли предупреждение просто из-за несколько различных сигнатур методов? Каковы последствия игнорирования предупреждения?
Эдди указал на обман. Я голосовал, чтобы закрыть свой собственный вопрос, но я подумал, что хозяин может закрыть его. – Dana
Дана, проверьте [Проблема компиляции примера K & R] (http://stackoverflow.com/questions/616906/problem-compiling-kr-example/616929), и вы, вероятно, найдете ответ на свой вопрос. Сообщите нам, если вы этого не сделаете. – Eddie