Printf( "%D", wert) was bedeutet %D
-
Hallo Zusammen,
ich portiere gerade einen alten QNX C Source-Code
nach GNU Ubuntu und versuche herauszubekommen, was "%D" als
Formatanweisung bedeutet.Wenn ich %d verwende, meldet der Compiler leider Fehler,
da die Variable vom Typ long ist und dieser so nicht unterstützt wird.Hier müsste ich "ld" verwenden, aber was bedeutet "%D" ?
Gruss
-
Ritchie schrieb:
[...]was bedeutet "%D" ?
Gruss Ritchie
%D bedeutet Digital wenn ich mich jetzt nicht ganz stark irre
-
Hallo Virokams,
Du meinst also eine binäre Darstellung. Hmm, das könnte hinkommen.
Gruss
-
Ritchie schrieb:
Hallo Virokams,
Du meinst also eine binäre Darstellung. Hmm, das könnte hinkommen.
Gruss Ritchie
Nein ... nix Binär oder so
Formatierungszeichen
%d, %i
Es wird ausgegeben (eine) …
... vorzeichenbehaftete ganze Dezimalzahl.steht wohl für Dezimal nicht digital... sry
Quelle:
http://openbook.galileocomputing.de/c_von_a_bis_z/c_007_012.htm
-
Was aber noch nicht die Frage beantwortet, was %D denn bedeuten mag. Der Standard spezifiziert es auf jeden Fall nicht.
Bei %x, %f, %e, %g und %a gibt es jeweils eine Großbuchstabenversion, bei der dann statt Kleinbuchstaben in der Ausgabe Großbuchstaben erscheinen. Für %d aber nicht, in der %d-Ausgabe kommen ja auch gar keine Buchstaben vor.
Es dürfte also irgendeine beliebige Erweiterung der Implementierung sein. In "Future library directions" sagt der Standard, dass "Lowercase letters may be added to the conversion specifiers and length modifiers in fprintf and fscanf. Other characters may be used in extensions." Wer printf implementiert und dabei noch weitere Conversion Specifier unterstützen will, würde also Großbuchstaben verwenden, um Kollisionen mit einem zukünftigen C-Standard zu vermeiden.
-
Hallo Zusammen,
das mit "%d" ist mir bekannt. Ebenso weiss ich auch, das der Standard "%D" nicht vorsieht, schliesslich sagt das bereit die Fehlermeldung der GNU Compiler.
Meine Frage zielte eher auf etwas ältere Standard, welche dann abgeändert wurden.
Kann es sein, das früher "%D" dem heutigen "%ld" entspricht ?
Gruss
-
Hier mal ein Link:
http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/lib_ref/p/printf.htmlEin %D seh ich da auch nicht, allerdings soll es da ein %0 ( 0 = Zero )geben
Aber schreib mal was draus wird.
MfG f.-th.
-
%D ist das selbe wie %d jedoch mit einem long-Argument anstelle eines int-Arguments. Ob das ANSI-Standard ist weiß ich nicht.
-