Gast
#473957
Hallo, ich kriege folgende Warnings beim compilieren mit WinAVR gcc:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
Sind die Warnungen Gefährlich?
|
Anzeige
|
Viele Warnungen beim Kompilieren
Gast
#473957
Hallo, ich kriege folgende Warnings beim compilieren mit WinAVR gcc:
Sind die Warnungen Gefährlich?
Gast
#473963
>'old[0]' may be used uninitialized in this function Heisst nur, dass du der Variablen zu diesem Zeitpunkt nichts zugwiesen hast. Ein Auslesen würde undefinerte Werte liefern. >pointer targets in passing argument 1 of 'strncmp_P' differ in signedness klingt nach verschiedenen Variablentypen. Du versuchst "strncmp_P" einen unerwarteten Pointertype zu übergeben. Das machst du mehrfach, und auch mit anderen Funktionen. Da das Warnings sind, funktioniert das Programm (zumindest ist es syntaktisch richtig), kann aber ungewollte Ergenisse liefern. > Da das Warnings sind, funktioniert das Programm (zumindest ist es > syntaktisch richtig), Es empfiehlt sich aber trotzdem, den Code soweit zu korrigieren, dass alle Warnings wieder verschwinden. Viele Warnings sind zwar harmlos, aber nicht alle. Und die gehen dann in der Flut der harmlosen Warnings unter.
Gast
#474038
Jede Warnung ist solange gefährlich, bis man genau verstanden hat, warum sie auftritt, (und sie als ungefährlich einstufen kann). Nur kann (und sollte) man dann auch gleich den Code so ändern, daß sie nicht mehr auftritt :-) Oliver Ich klinke mich bei dem Thread mal ein weil es so schön dazu passt. Ich
bekomme auch die signedness Fehlermeldung, weiss aber nicht, wie ich sie
beheben soll:
in der main.c führe ich folgenden Befehl aus, der eine Funktion in
Stephan Buskers FAT16 Library aufruft:
fopen_("file0001.txt",'a');
die Lib sieht so aus:
extern File * fopen_(s8 *fname,s8 mode);
Es sird also eine signed Zeichenfolge erwartet. Wie kann ich ihm dieses
festlegen?
mit fopen_(signed char test = "file0001.txt",'a');
funktioniert es auch nicht.
Gast
#1536187
> fopen_("file0001.txt",'a'); > > die Lib sieht so aus: > > extern File * fopen_(s8 *fname,s8 mode); Dann ist diese Funktion falsch deklariert. Der erste Parameter müßte eigentlich vom Typ const char* sein. Dann käme auch keine Warnung. > Es sird also eine signed Zeichenfolge erwartet. Genau das ist das Problem. Wenn man mit Strings arbeitet, sollte es vollkommen egal sein, ob der für Zeichen verwendete Typ nun ein Vorzeichen hat oder nicht. > Wie kann ich ihm dieses festlegen? Du wirst wohl einen cast bemühen müssen: fopen_((s8*)"file0001.txt",'a'); Igor Ebner schrieb:
> Ich klinke mich bei dem Thread mal ein weil es so schön dazu passt.
Nein, dafür macht man einen neuen Thread auf, statt eine alte Leiche
aus dem Keller zu holen.
Ja, Rolf, so klappt es. OK, Jörg, wird beherzigt. Danke Euch beiden. p.s. Von Assembler auf C umzusteigen macht riesig Spaß :c) Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|