unsigned long long
-
Hallo, wie kann ich ein usigned long long in einem printf Statement ausgeben, er gibt immer nur die ersten 32 Bit aus?
-
printf("%llu", u)
-
Funktioniert leider nicht.
#include <stdio.h> int main(int argc, char **argv) { printf("%llu\n", 5000000000ULL); return 0; }
Sowohl Visual Studio.NET (7.1) als auch der GCC Compiler (3.3.1) geben die Zahl 705032704 in der Console aus. Muss man für 64 Bit vielleicht noch irgendwelche Einstellungen treffen?
-
bei mir (gcc 3.3.4 (debian)) klappt das Beispiel Programm ohne Probleme.
-
Schau mal in der MSDN nach, es kann sein das M$ eine anderes prefix als ll für printf benutzt.
To Specify Use Prefix With Type Specifier
long int l d, i, o, x, or X
long unsigned int l u
short int h d, i, o, x, or X
short unsigned int h u
__int64 I64 d, i, o, u, x, or X? Konformität, Standard ??
M$ to be different
-
MS ist in der Beziehung nicht standardkonform. Folgendes sollte aber funktionieren (MS spezifisch):
printf("%I64u\n", 5000000000ULL);