Mögliche Duplizieren:
Problem compiling K&R exampleZeigerart Mismatch Warnung in Beispiel von K & R C
In letzter Zeit habe ich mich durch die C-Programmiersprache von K & R. arbeitet
In Abschnitt 5.11 behandeln sie Zeiger auf Funktionen und nach der Eingabe in ihrem Beispiel - eine Quicksort-Implementierung, wo wir einen Zeiger auf den Compari bieten Sohn-Funktion, die wir verwenden möchten - Ich erhalte eine Warnung vom Compiler: Zeigertyp stimmt nicht mit Bedingungsausdruck überein. (Mein Compiler gcc 4.0.1 auf OS X 10.5.6)
Die Zeile aus dem Beispiel, das die Warnung ausgelöst wird:
qsort((void **) lineptr, 0, nlines-1,
(int (*)(void*, void*))(numeric ? numcmp : strcmp));
Das Programm ohne Speicherzugriffsfehler führt, aber Ich mag jede Warnung an smoosh Ich kann oder verstehe ihre Ursachen zumindest.
Die Funktionsdeklaration für numcmp wie folgt aussieht:
int numcmp(char *, char *);
Aber nach der Man-Page, hat stcmp diese Signatur:
int strcmp(const char *s1, const char *s2);
ist die einfache Warnung wegen der etwas anderen Methode Signaturen? Was sind die Konsequenzen der Ignorierung der Warnung?
Eddie zeigte auf einen Betrogenen. Ich habe gewählt, um meine eigene Frage zu schließen, aber ich dachte, dass es eine Möglichkeit geben würde, wie der Besitzer es kurzerhand schließen könnte. – Dana
Dana, check out [Problem Kompilierung K & R Beispiel] (http://StackOverflow.com/Questions/616906/Problem-Compiling-Kr-Beispiel/616929) und Sie werden wahrscheinlich die Antwort auf Ihre Frage dort finden. Lass es uns wissen, wenn du es nicht tust. – Eddie