プログラミング言語 C の新機能 Part XIX: INT#6:inttypes.h[1/2]
(1999/07/05 [月])
stdint.h で定義される整数型、例えば int_fast32_t のような型を使えば、移植性を保ったまま、最も効率のよい整数型を使用することが可能になります。しかし、この型を使った変数を printf で出力したり、scanf で入力することを考えましょう。すると、printf や scanf ではそのような型は定義されていないので指定できません。そのようなことから、利用者は int_fast32_t の実際の型を調べてその型を書式指定名として書かなくてはなりませんが、これでは移植性がなくなってしまいます。
inttypes.h では、書式指定マクロの定義を提供することによりこの問題を解決します。例えば、printf("val=%"PRIxFAST32"\n",intfast32val) の様にして使用します。なお、inttypes.h は自動的に stdint.h を読み込みます。
inttypes.h では、書式指定マクロの定義を提供することによりこの問題を解決します。例えば、printf("val=%"PRIxFAST32"\n",intfast32val) の様にして使用します。なお、inttypes.h は自動的に stdint.h を読み込みます。
符号 | intN_t | int_leastN_t | int_fastN_t | intmax_t | intptr_t | |
---|---|---|---|---|---|---|
fprintf | 符号付き | PRIdN | PRIdLEASTN | PRIdFASTN | PRIdMAX | PRIdPTR |
PRIiN | PRIiLEASTN | PRIiFASTN | PRIiMAX | PRIiPTR | ||
符号なし | PRIoN | PRIoLEASTN | PRIoFASTN | PRIoMAX | PRIoPTR | |
PRIuN | PRIuLEASTN | PRIuFASTN | PRIuMAX | PRIuPTR | ||
PRIxN | PRIxLEASTN | PRIxFASTN | PRIxMAX | PRIxPTR | ||
PRIXN | PRIXLEASTN | PRIXFASTN | PRIXMAX | PRIXPTR | ||
fscanf | 符号付き | SCNdN | SCNdLEASTN | SCNdFASTN | SCNdMAX | SCNdPTR |
SCNiN | SCNiLEASTN | SCNiFASTN | SCNiMAX | SCNiPTR | ||
符号なし | SCNoN | SCNoLEASTN | SCNoFASTN | SCNoMAX | SCNoPTR | |
SCNuN | SCNuLEASTN | SCNuFASTN | SCNuMAX | SCNuPTR | ||
SCNxN | SCNxLEASTN | SCNxFASTN | SCNxMAX | SCNxPTR | ||
注: ・N は前に0の付かない符号なし10進数整数をあらわしている。 ・C++ では、inttypes.h を include する前に、マクロ __STDC_FORMAT_MACROS を定義した時だけ、これらのマクロが定義される。 |
by seclan