Formatbezeichner für „long long“

Lesezeit: 2 Minuten

Prabhu.  Benutzeravatar von S
Prabhu. S

Ich deklariere eine Variable für einen 64-Bit-Zähler als:

long long call_count;

Was ist der Formatbezeichner, den ich in Druckanweisungen verwenden sollte?

Ich habe es versucht, %l, %ld, %ll. Keine scheint richtig zu sein.

Ich verwende den Diab C-Compiler zum Kompilieren meines Anwendungscodes für die Ausführung auf dem pSOS-Betriebssystem.

Laut C99 sollte es “%lld” sein (siehe zum Beispielhier). Wenn Diab C nicht C99 ist, müssten Sie sich die Compiler-Dokumentation ansehen, die ich mit einem schnellen Googeln nicht online finden kann.

  • Für ‘long long unsigned int’ sollten Sie “%llu” verwenden

    – Atiq Rahman

    8. Dezember 2013 um 11:08 Uhr


Es ist "%lli" (oder gleichwertig "%lld")

Benutzeravatar von Graeme Perrow
Graem Perrow

Verwendung von Microsoft und Watcom %I64d (großes Auge), andere verwenden %lld (Kleinbuchstaben ell ell).

  • “Verwenden Sie %I64d (Großbuchstabe I)”: erneut versuchen?

    – Robert Gamble

    20. Januar 2009 um 18:05 Uhr

  • Microsoft verwendet ll (ell ell) für lange lange; I64 (Auge) für __int64. msdn.microsoft.com/en-us/library/tcxf1dw6.aspx

    – Rob Kennedy

    20. Januar 2009 um 20:22 Uhr

  • Die Formatbezeichner sind weniger mehrdeutig, wenn sie in sind fixed width (vorausgesetzt, es wird eine vernünftige Schriftart mit fester Breite verwendet).

    – Traumlax

    6. August 2013 um 5:36 Uhr

Benutzeravatar von Caladan
Caladan

Dies und noch etwas mehr wurde hier beschrieben: plattformübergreifendes Drucken von 64-Bit-Ganzzahlen mit printf

TL;DR: Sie können das PRId64-Makro (aus inttypes.h) verwenden, um 64-Bit-Ganzzahlen in Dezimalzahlen auf semi-portable Weise zu drucken. Es gibt auch andere Makros (wie PRIx64).

Vielleicht %lld? Ich denke, das ist das Format für gcc, ich weiß nichts über den Diab C-Compiler.

  • %lld ist seit langem der Standard-Konvertierungsspezifizierer, Windows ist der einzige, von dem ich weiß, dass dies nicht unterstützt wird (aber sie unterstützen nicht viele Standards). Außerdem ist dies spezifisch für die verwendete Standard-c-Bibliothek und nicht für den Compiler.

    – Robert Gamble

    20. Januar 2009 um 18:17 Uhr

Gerhards Benutzeravatar
Gerhard

Es ist %lld für signiert und %llu für unsigniert

  • %lld ist seit langem der Standard-Konvertierungsspezifizierer, Windows ist der einzige, von dem ich weiß, dass dies nicht unterstützt wird (aber sie unterstützen nicht viele Standards). Außerdem ist dies spezifisch für die verwendete Standard-c-Bibliothek und nicht für den Compiler.

    – Robert Gamble

    20. Januar 2009 um 18:17 Uhr

Benutzeravatar von Aashish Kumar
Aashish Kumar

long long t1;             //signed
unsigned long long t2;    //unsigned

printf("%lld",t1);
printf("%llu",t2);

1401380cookie-checkFormatbezeichner für „long long“

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy