ProblemJak wydrukować wartość guint64 podczas korzystania z glib?
Robię wykorzystanie 2,0 biblioteką Glib i oświadczył zmienną gunit64. Chcę wydrukować jego wartość na ekranie, ale nie działa poprawnie.
Kod
Rozważmy następujący fragment kodu jako przykład. Deklaruję zmienną guint64 i próbuję wydrukować jej wartość.
guint64 myValue = 24324823479324;
printf("My Value: %d\n", myValue);
Warning
uzyskać to ostrzeżenie:
warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘guint64’
Output
dostaję dziwne negatywne numer na ekranie:
Moja Wartość: -1871285220
Dalsze Komentarze
Próbowałem szukać w dokumentacji API i znalazłem następujące pod guint64:
Liczba całkowita bez znaku gwarancją 64 bity na wszystkich platformach. Wartości tego typu mogą być w zakresie od 0 do G_MAXUINT64 (= 18,446,744,073,709,551,615). Aby uzyskać możliwość drukowania lub skanowania wartości tego typu, użyj G_GINT64_MODIFIER i/lub G_GUINT64_FORMAT.
Dlatego zakładam, że muszę użyć modyfikatora lub definicji formatu. Jednak dokumentacja nie pokazuje, jak z nich korzystać. Czy ktoś może mi pomóc proszę?
Nie działa z jakiegoś powodu. Nic nie jest drukowane – Goaler444
@ Goaler444 Być może stdout po prostu nie jest zaczerwieniony z powodu braku nowej linii? Spróbuj 'printf (" Moja wartość:% "G_GUINT64_FORMAT" \ n ", myValue);' zamiast. – Ancurio
@ Goaler444 Byłoby interesujące dowiedzieć się dokładnie, jak wygląda twój kod, może być coś głupiego (jak brakujący znak nowej linii, jak mówi Ancurio). To naprawdę powinno działać i jest właściwą drogą do tego. – unwind