mikrocontroller.net

Forum: Compiler & IDEs Viele Warnungen beim Kompilieren


Autor: Udo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich kriege folgende Warnings beim compilieren mit WinAVR gcc:
webcam/mca25.c:79: warning: pointer targets in passing argument 3 of 'mca25_grab_data' differ in signedness
webcam/mca25.c:114: warning: pointer targets in passing argument 3 of 'mca25_grab_data' differ in signedness
webcam/mca25.c: In function 'mca25_start_image_grab':
webcam/mca25.c:391: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:410: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:433: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:434: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c: In function 'mca25_init':
webcam/mca25.c:491: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:500: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:508: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:517: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:525: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:534: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:544: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:553: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:562: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:573: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:584: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:604: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:617: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:625: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:660: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c: In function 'mca25_configure':
webcam/mca25.c:698: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c:711: warning: pointer targets in passing argument 1 of 'strncmp_P' differ in signedness
webcam/mca25.c: In function 'mca25_pgm_send':
webcam/mca25.c:777: warning: 'old[2]' may be used uninitialized in this function
webcam/mca25.c:777: warning: 'old[1]' may be used uninitialized in this function
webcam/mca25.c:777: warning: 'old[0]' may be used uninitialized in this function


Sind die Warnungen Gefährlich?

Autor: fieser, klugscheissender Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>'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.

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: OliverSo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: I. E. (anfaenger69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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');

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: I. E. (anfaenger69)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.