printf フォーマットの課題: uint64_t の処理
uint64_t 変数を出力しようとすると、次のようなエラー メッセージが表示される場合があります。末尾の '%' の形式です。」この問題は、普遍的に定義されていない ISO C99 標準の形式マクロに依存しているために発生します。
解決策は、これらのマクロの定義を明示的に要求することです。その方法は次のとおりです。
__STDC_FORMAT_MACROS 定義の設定
コードの先頭に次の行を追加します。
#define __STDC_FORMAT_MACROS
この定義必要な形式のマクロを含めるようコンパイラに指示し、PRIu64 マクロが認識され、使用できるようにします。
この定義が完了すると、次のコードは正常にコンパイルされます。
#include <inttypes.h> #include <stdio.h> int main() { uint64_t ui64 = 90; printf("test uint64_t : %" PRIu64 "\n", ui64); return 0; }
__STDC_FORMAT_MACROS 定義を指定すると、uint64_t 変数が正しくフォーマットされて出力され、以前に発生した問題が解決されます。
以上が私のコードが「形式に偽の末尾 '%'」を含む uint64_t を出力できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。