Heim  >  Artikel  >  Backend-Entwicklung  >  Warum führt das Drucken eines „uint64_t“ zu einem „Spurious Trailing ‚%‘ in Format“-Fehler?

Warum führt das Drucken eines „uint64_t“ zu einem „Spurious Trailing ‚%‘ in Format“-Fehler?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-17 21:21:02812Durchsuche

Why Does Printing a `uint64_t` Result in a

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 einbinden:

#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!

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