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
Hi Otto, versuch es mal mit %lu anstatt %u. Das l steht für long. %u selbst ist wohl nur short (16 bit). -Edd
Hallo Ed, das war's ! Ich bin neu in C und wußte nicht, dass man Formatzeichen so angeben kann. Danke Dir für Deine Mühe ! ..und noch ein schönes WE ! Otto
Generisch (so dass es auf jedem System funktioniert): #include <inttypes.h> uint32_t x; ... printf("%" PRIu32 "\n\r", x);
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.