web-dev-qa-db-ja.com

uint32、int32、uint64、int64などの型は、stdlibヘッダーで定義されていますか?

Uint32、uint64などのタイプを使用するソースコードをよく目にします。プログラマがアプリケーションコードで定義する必要があるのか​​、それとも標準のlibヘッダーで定義するのか疑問です。

これらの型をアプリケーションのソースコードに含める最良の方法は何ですか?

87
philix

C99 stdint.h はこれらを定義します:

  • int8_t
  • int16_t
  • int32_t
  • uint8_t
  • uint16_t
  • uint32_t

そして、アーキテクチャがそれらをサポートしている場合:

  • int64_t
  • uint64_t

stdint.hには他にもさまざまな整数typedefがあります。

C99環境なしで立ち往生している場合は、おそらく独自のtypedefを提供し、とにかくC99を使用する必要があります。

uint32およびuint64(つまり、_tサフィックスなし)は、おそらくアプリケーション固有のものです。

123
mu is too short

これらの整数型はすべてstdint.hで定義されています

10
GWW

C99を使用している場合は、stdint.hを含めるだけです。ところで、64ビット型は、プロセッサがサポートしている場合にのみ存在します。

2
BiGYaN

質問者は、実際には(ugい)int16_t(など)ではなく、int16(など)について尋ねました。

標準ヘッダーはありません。また、Linuxの/ usr/include /フォルダーに「_t」なしでヘッダーを定義するものもありません。

0
Steve