Heim > Artikel > Backend-Entwicklung > Warum führt das Drucken eines „uint64_t“ zu einem „Spurious Trailing ‚%‘ in Format“-Fehler?
Unechter nachgestellter „%“ im Formatfehler beim Versuch, uint64_t zu drucken
Beim Versuch, eine uint64_t-Variable mit printf zu drucken, kann es sein, dass Sie Es tritt ein Fehler wie „falsches nachgestelltes ‚%‘ im Format“ auf. Lassen Sie uns das Problem genauer untersuchen und eine Lösung finden.
Das bereitgestellte Code-Snippet zeigt den Versuch, eine uint64_t-Variable mit dem Platzhalter %" PRIu64 " zu drucken:
#include <inttypes.h> #include <stdio.h> int main() { uint64_t ui64 = 90; printf("test uint64_t : %" PRIu64 "\n", ui64); return 0; }
Die Kompilierung schlägt jedoch fehl mit der oben erwähnten Fehlermeldung. Um dieses Problem zu beheben, müssen Sie sicherstellen, dass das erforderliche Makro definiert ist. Der ISO C99-Standard legt fest, dass das PRIu64-Makro nur auf ausdrückliche Anfrage definiert wird.
Fügen Sie daher die folgende Zeile zu Ihrem Code hinzu, bevor Sie
#define __STDC_FORMAT_MACROS
With Wenn Sie diese Zeile hinzufügen, wird das PRIu64-Makro ordnungsgemäß definiert und der aufgetretene Fehler wird behoben. Dieses Makro ermöglicht die Verwendung des PRIu64-Platzhalters in der printf-Formatzeichenfolge, sodass Sie die Variable uint64_t erfolgreich drucken können.
Das obige ist der detaillierte Inhalt vonWarum führt das Drucken eines „uint64_t“ zu einem „Spurious Trailing ‚%‘ in Format“-Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!