Heim >Backend-Entwicklung >C++ >Warum kann mein Code kein uint64_t mit „unechtem nachgestelltem ‚%' im Format' drucken?

Warum kann mein Code kein uint64_t mit „unechtem nachgestelltem ‚%' im Format' drucken?

Barbara Streisand
Barbara StreisandOriginal
2024-11-17 12:17:02679Durchsuche

Why Does My Code Fail to Print a uint64_t with

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn