Forum: Compiler & IDEs sprintf %d und uint8_t?


von W. (Gast)


Lesenswert?

Hallo,

muss ich in Zusammenhang mit sprintf und der sprintf Anweisung %d oder 
%c verwenden?

z.B.:
uint8_t h,min,sec;
.
.
.
sprintf(disp_output,"%02d:%02d:%02d", h,min,sec);

oder

sprintf(disp_output,"%02c:%02c:%02c", h,min,sec);


Danke

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

%d und %c machen einfach zwei sehr unterschiedliche Dinge.  Das erste
Wandelt den Binärwert in eine Dezimalzahl um, das zweite gibt ihn
direkt aus.

In beiden Fällen wird übrigens der Wert zwangsweise auf dem Stack als
16-bit-Wert (int) übergeben, da bei einer variablen Argumentliste
immer die "integer promotion rules" angewandt werden.

von holger (Gast)


Lesenswert?

sprintf(disp_output,"%02d:%02d:%02d", (int)h, (int)min, (int)sec);

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
Noch kein Account? Hier anmelden.