C ユーザーズガイド

書式文字列マクロ

<inttypes.h> ファイルには、printf(3S) および scanf(3S) の書式指示子を指定するマクロも含まれています。基本的にこれらのマクロは、引数のビット数がマクロ名に組み込まれていることを条件に、書式指示子の前に l または ll を付加して、引数が long または long long のどちらであるかを示します。

次の例に示すように、最小および最大整数型を 10 進、8 進、符号なし、16 進の形式で表示する、printf(3S) 用のマクロがあります。


int64_t i;
printf("i =%" PRIx64 "¥n", i);

同様に、最小および最大整数型を 10 進、8 進、符号なし、16 進の形式で読み取る、scanf(3S) 用のマクロがあります。


uint64_t u;
scanf("%" SCNu64 "¥n", &u);

これらのマクロはむやみに使用しないでください。「固定幅の整数型」で説明したように、固定幅型に対して使用することが最も適しています。