Fehlermeldungen :-(
-
Hallo,
bin neu im Forum und in Sachen ANSI-C.
Benutze Dev-C auf WinXP.Kann mit vielen Fehlermeldungen nichts anfangen.
Eine taucht ständig auf:[Warning] type mismatch with previous implicit declaration
Kann jemand von euch damit etwas anfangen?? Variablen wurden alle ordnungsgemäß deklariert und initialisiert.
Falls es euch interessiert, stelle ich natürlich auch gerne meinen Code ins Forum.Für jeden Tipp dankbar
Gruß
jimmyt
-
Diese Warnung ist harmlos und wenn das Programm sachgemäß funktioniert, kannst du sie beruhigt ignorieren. Es liegt daran, daß du einen fehlerhaften C++ Compiler benutzt, aber du solltest lieber den C Compiler benutzen, weil er besser ist.
-
^^sieht so aus, als ob da die definition fehlt. mach' nen prototypen in's headerfile, oder irgendwo vor den aufruf der funktion.
@bernie's butt: ich würd sowas nicht unterschätzen.
-
Bernibutt schrieb:
Diese Warnung ist harmlos und wenn das Programm sachgemäß funktioniert, kannst du sie beruhigt ignorieren.
warnungen sollte man *nicht* ignorieren, denn das kann eine Quelle von Seiteneffekten werden, die super schwer zu debuggen sind. Hab früher mal wranings durch casts weggemacht (d.h. ignoriert) und irgendwann ist die Software im Betrieb beim Kunden dermaßen abgestürzt und hab sehr lange gebraucht, bis ich den Fehler fand. Seitem ignoriere ich keine einzelne Warnung.
-
Ich sprach doch nicht davon Warnungen zu ignorieren, sondern von dieser speziellen Warnung! Du mußt bitte zukünftig die Beiträge genauer lesen, bevor du den Antwortknopf betätigst!
-
Bernibutt schrieb:
Ich sprach doch nicht davon Warnungen zu ignorieren, sondern von dieser speziellen Warnung!
Genau diese spezielle Warnung besagt ja, daß sich der Compiler zu einem Casting gezwungen sieht, das der Programmierer in der Source so nicht zu sehen bekommt. Sowas sollte man eben nicht generös übersehen.
@~fricky:
Bei fehlenden Prototypen heißt die warning i.a.R. "missing prototype" oder so, glaube, er hat wirklich irgendwo einen Cast versteckt.
-
pointercrash() schrieb:
@~fricky:
Bei fehlenden Prototypen heißt die warning i.a.R. "missing prototype" oder so, glaube, er hat wirklich irgendwo einen Cast versteckt.naja, er hat 'nen GCC und ich kann mich dunkel daran erinnern, dass der so'ne meldung ausspuckt. kann mich aber auch täuschen. GCCs verwende ich ziemlich selten.
-
~fricky schrieb:
^^sieht so aus, als ob da die definition fehlt. mach' nen prototypen in's headerfile, oder irgendwo vor den aufruf der funktion.
Genau das wars!!
Danke dir für den Tipp. Auch danke an alle anderen für die Antworten.Code läuft jetzt zwar fehlerfrei durch, aber erfüllt nicht seinen Zweck.
Irgendwas stimmt nicht.#include <stdio.h> #define MAX 50 void squeeze2 (char s[], char t[]); void arrayFuellen (char a[], char b[]); int main() { char a[MAX], b[MAX]; arrayFuellen(a,b); squeeze2(a,b); system("PAUSE"); return 0; } void squeeze2 (char s[], char t[]) { int j, i, k; i=k=0; //gleiche Zeichen rausfiltern while(s[i]!= '\0') { for(j=0; t[j]!='\0' || t[j]==s[i]; ++j) ; if (t[j]=='\0') { s[k++]=s[i]; } ++i; } //Ausgabe for(k=0; s[k]!='\0';++k) { putchar(s[k]); } putchar('\n'); } //read two strings from keyboard into the arrays void arrayFuellen (char a[], char b[]) { int c, d, i; for (i=0; (c=getchar())!= EOF || c!='\n'; ++i) { a[i]=c; } a[++i]='\0'; for (i=0; (d=getchar())!= EOF || d!='\n'; ++i) { b[i]=d; } b[++i]='\0'; }
Es kommt zu keiner Ausgabe.
Vielleicht sieht einer von euch was da nicht stimmt.Gruß
jimmy
-
jimmyt schrieb:
Es kommt zu keiner Ausgabe.
Vielleicht sieht einer von euch was da nicht stimmt.Es kommt schon mal zu keiner Eingabe, die for- Schleifen sind Trash.
Eher so://read two strings from keyboard into the arrays void arrayFuellen (char a[], char b[]) { int c, i = 0; do { c=getchar(); a[i++]=c; } while (c != '\n'); a[i]='\0'; i = 0; do { c=getchar(); b[i++]=c; } while (c != '\n'); b[i]='\0'; }
Hab's jetzt nicht voll getestet, sieht aber eher nach dem aus, was Du wolltest.