首頁 >後端開發 >C++ >為什麼印出 `uint64_t` 會導致「格式中虛假尾隨 '%'」錯誤?

為什麼印出 `uint64_t` 會導致「格式中虛假尾隨 '%'」錯誤?

Patricia Arquette
Patricia Arquette原創
2024-11-17 21:21:02922瀏覽

Why Does Printing a `uint64_t` Result in a

嘗試使用Printf uint64_t 時出現格式錯誤中的假尾隨「%」

在嘗試使用printf 列印uint64_t 變數時,您可能會嘗試使用printf 列印uint64_t 變數時,您可能會嘗試使用printf 列印uint64_t 變數遇到諸如“格式中虛假尾隨'%'”之類的錯誤。讓我們深入研究這個問題並探索解決方案。

提供的程式碼片段展示了使用 %" PRIu64 " 佔位符列印 uint64_t 變數的嘗試:

#include <inttypes.h>
#include <stdio.h>

int main()
{
  uint64_t ui64 = 90;
  printf("test uint64_t : %" PRIu64 "\n", ui64);
  return 0;
}

但是,編譯失敗與前面提到的錯誤訊息。要解決此問題,您需要確保定義了必要的巨集。 ISO C99 標準規定,僅在明確要求時才定義 PRIu64 巨集。

因此,請在包含 之前將以下行添加到您的程式碼中:

#define __STDC_FORMAT_MACROS

With新增此行後,PRIu64 巨集將被正確定義,並且您遇到的錯誤將得到解決。該巨集允許在 printf 格式字串中使用 PRIu64 佔位符,從而允許您成功列印 uint64_t 變數。

以上是為什麼印出 `uint64_t` 會導致「格式中虛假尾隨 '%'」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn