seclan のほえほえルーム

| |

・プログラミング言語 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 を読み込みます。

書式指定マクロ
 符号intN_tint_leastN_tint_fastN_tintmax_tintptr_t
fprintf符号付きPRIdNPRIdLEASTNPRIdFASTNPRIdMAXPRIdPTR
PRIiNPRIiLEASTNPRIiFASTNPRIiMAXPRIiPTR
符号なしPRIoNPRIoLEASTNPRIoFASTNPRIoMAXPRIoPTR
PRIuNPRIuLEASTNPRIuFASTNPRIuMAXPRIuPTR
PRIxNPRIxLEASTNPRIxFASTNPRIxMAXPRIxPTR
PRIXNPRIXLEASTNPRIXFASTNPRIXMAXPRIXPTR
fscanf符号付きSCNdNSCNdLEASTNSCNdFASTNSCNdMAXSCNdPTR
SCNiNSCNiLEASTNSCNiFASTNSCNiMAXSCNiPTR
符号なしSCNoNSCNoLEASTNSCNoFASTNSCNoMAXSCNoPTR
SCNuNSCNuLEASTNSCNuFASTNSCNuMAXSCNuPTR
SCNxNSCNxLEASTNSCNxFASTNSCNxMAXSCNxPTR
注:
 ・N は前に0の付かない符号なし10進数整数をあらわしている。
 ・C++ では、inttypes.h を include する前に、マクロ __STDC_FORMAT_MACROS を定義した時だけ、これらのマクロが定義される。



by seclan | コメント (0) | トラックバック (0)

コメント

 コメントできる期間はすでに過ぎています。


トラックバック

 トラックバックできる期間はすでに過ぎています。


| |

 

配信

22.91 msec