#inttypes.h
C 言語では、stdint.h で定義された 4 種類の整数型に対して、ヘッダー ファイル inttypes.h 内に printf()
および scanf()
のプレースホルダーも提供されます。
- 固定幅の整数型 (int8_t など)。
- 最小幅の整数型 (int_least8_t など)。
- 最速の最小幅整数型 (int_fast8_t など)。
- 最大幅の整数型 (intmax_t など)。
printf()
のプレースホルダーは、PRI + 元のプレースホルダー + type キーワード/width
で構成されます。たとえば、元のプレースホルダーが %d
の場合、対応するプレースホルダーは次のようになります。
・PRIdn(固定幅型) ・PRIdLEASTn(最小幅タイプ)
- PRIdFASTn (最小幅最速タイプ) ・PRIdMAX(最大幅タイプ)
上記のプレースホルダーの「n」は、8、16、32、または 64 に置き換えることができます。
以下に使用例を示します。
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
int main(void) {
int_least16_t x = 3490;
printf("値は %" PRIdLEAST16 "!\n", x);
}
上記の例では、PRIdLEAST16
に対応する整数型は int_least16_t で、元のプレースホルダーは %d
です。さらに、printf()
の最初のパラメータは、複数の文字列の自動マージを使用します。
以下は、他の元のプレースホルダーに対応するプレースホルダーです。
- %i: PRIin PRIiLEASTn PRIiFASTn PRIiMAX
- %o: PRIon PRIoLASTn PRIoFASTn PRIoMAX
- %u: プリウン PRIuLEASTn PRIuFASTn PRIuMAX
- %x: PRIxn PRIxLEASTn PRIxFASTn PRIxMAX
- %X: PRIXn PRIXLEASTn PRIXFASTn PRIXMAX
scanf()
のプレースホルダー規則も同様です。
- %d: SCNdn SCNdLEASTn SCNdFASTn SCNdMAX
- %i: SCNiLEASTn SCNiFASTn SCNiMAX の SCN
- %o: SCNon SCNoLEASTn SCNoFASTn SCNoMAX
- %u: SCNun SCNuLEASTn SCNuFASTn SCNuMAX
- %x: SCNxn SCNxLEASTn SCNxFASTn SCNxMAX
作者: wangdoc
アドレス: https://wangdoc.com/
ライセンス: クリエイティブ・コモンズ 3.0