Herausforderung bei der Formatierung von printf: Umgang mit uint64_t
Beim Versuch, eine uint64_t-Variable zu drucken, wird möglicherweise eine Fehlermeldung ähnlich der folgenden angezeigt: „falsch nachgestelltes „%“ im Format.“ Dieses Problem entsteht durch die Abhängigkeit von den Formatmakros des ISO C99-Standards, die nicht allgemein definiert sind.
Die Lösung liegt darin, die Definition dieser Makros explizit anzufordern. So geht's:
Festlegen der __STDC_FORMAT_MACROS-Definition
Fügen Sie die folgende Zeile am Anfang Ihres Codes hinzu:
#define __STDC_FORMAT_MACROS
Diese Definition weist den Compiler an, die erforderlichen Formatmakros einzuschließen, um sicherzustellen, dass das PRIu64-Makro erkannt wird und verfügbar ist verwenden.
Sobald diese Definition vorhanden ist, wird der folgende Code erfolgreich kompiliert:
#include <inttypes.h> #include <stdio.h> int main() { uint64_t ui64 = 90; printf("test uint64_t : %" PRIu64 "\n", ui64); return 0; }
Durch die Angabe der __STDC_FORMAT_MACROS-Definition stellen Sie sicher, dass die Variable uint64_t korrekt formatiert und gedruckt und aufgelöst wird das Problem, auf das Sie zuvor gestoßen sind.
Das obige ist der detaillierte Inhalt vonWarum kann mein Code kein uint64_t mit „unechtem nachgestelltem ‚%' im Format' drucken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!