這個問題在這里已經有了答案: 如何在 C 中便攜式列印 int64_t 型別 7 個答案 昨天關門。
考慮以下代碼片段,gcc -Wall針對兩種不同的架構編譯:
int64_t x;
printf("A: %ld\n", x);
printf("B: %lld\n", x);
在為 32 位機器編譯時,編譯器會報錯“A”:
格式“%ld”需要“long int”型別的引數,但引數 2 的型別為“int64_t”{又名“long long int”}
在為 64 位機器編譯時,編譯器會抱怨“B”:
格式“%lld”需要“long long int”型別的引數,但引數 2 的型別為“int64_t”{又名“long int”}
問題:什么是明智的機器獨立方式printf() int64_t?
uj5u.com熱心網友回復:
標頭包含函式和函式族的inttypes.h可移植轉換說明符。(它還在內部包括.)printfscanfstdint.h
#include <inttypes.h>
int64_t x = ...;
printf("%"PRIi64, x);
有關詳細資訊,請參閱 C 標準 C17 7.8.1。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/518367.html
標籤:C海合会打印
