1. ホーム
  2. c

[解決済み] off_tやsize_tのような型はどのように印刷すればよいのですか?

2022-03-04 04:54:28

質問

のようなタイプを印刷しようとしています。 off_tsize_t . の正しいプレースホルダーは何ですか? printf() ポータブルな ?

それとも、これらの変数を表示するまったく別の方法があるのでしょうか?

どのように解決するのですか?

を使用することができます。 z は size_t と t のように ptrdiff_t の場合は

printf("%zu %td", size, ptrdiff);

しかし、私のマニュアルによると、ある古いライブラリは z と、使用を控えています。とはいえ、(C99規格で)標準化されているのですが。それらのために intmax_tint8_tstdint.h などは、他の回答者さんがおっしゃるように、使えるマクロがありますよ。

printf("value: %" PRId32, some_int32_t);
printf("value: %" PRIu16, some_uint16_t);

のmanpageに記載されています。 inttypes.h .

個人的には、値をキャストして unsigned long または long 別の回答が推奨しているように もしあなたがC99を使っているのなら、次のようにキャストすることができます(もちろん、そうすべきです)。 unsigned long long または long long を使用し %llu または %lld というフォーマットがあります。