printf einer uint32-t ergibt Compiler-Warnung

Gast #364408
Lesenswert?

Hallo,

Ich habe in einer struct eine Variable definiert:

uint32_t vid_prgr_nr ;  /* VIDEO Program Number als unsigned long int
*/

Diese Variable will ich ausgeben:

/* VIDEO Program Number */
printf ("VIDEO Program Number:\t%u\n\r",  eeprom_data.vid_prgr_nr
) ;  /* das ist Zeile 260 */

Und der gcc (neuste Version) gibt folgende Fehlermeldung:

../usart.c: In function `print_eeprom_data':
../usart.c:260: Warnung: unsigned int Format, anderer Typ Argument
(Argument 2)

Also:

Ich habe die Variable als unsigned long int definiert und will in
printf die Zahl als %u ausgeben. Warum die Fehlermeldung, Was mache ich
falsch ?

Danke an Alle !

Otto
Gast #364412
Lesenswert?

Hallo Jörg,

ich möchte Dir an dieser Stelle 'mal danken für Deine Beiträge, die ja
wirklich sehr häufig sind und die wirklich fundiert sind.

Ich habe mit meinen 57 Jahren vor einem halben Jahr angefangen C/C++ zu
programmieren und denke, dass ich schon etwa 20% des Sprachumfangs
verstehe und anwende.

Das Projekt, das ich mache, ist ein MPEG2-Hardware-Encoder, der
natürlich auch ein uC hat (ATMega128), aber das bedeutet in erster
Linie MPEG2 zu verstehen, Video-Technik und Kommunikationstechnik (E.1
Standard) und am Rande lerne ich C/C++, WINAVR, Studio etc.

Das Gerät hat div. Schnittstellen, Tasten und ein LCD zur Bedienung,
die Bedienerführung eines solchen Geräts will sehr wohl überlegt sein !
Da tritt die C-Programmierung in den Hintergrund, das hat man einfach zu
können.

Als ich anfing mit dem Projekt, war mir klar, dass das eigentlich
hirnrissig ist, denn wir wollen das Gerät auch wirklich verkaufen.

Aber es geht voran !!

...und das habe ich in starkem Maße diesem Forum zu verdanken und
besonders dem WINAVR-Tutorial !

Ich weiß es wohl zu schätzen.

Otto

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren