回答:
C99 stdint.h
はこれらを定義します。
int8_t
int16_t
int32_t
uint8_t
uint16_t
uint32_t
そして、アーキテクチャがそれらをサポートしている場合:
int64_t
uint64_t
他にもさまざまな整数のtypedefがありstdint.h
ます。
C99環境がない場合は、おそらく独自のtypedefを提供し、とにかくC99のtypedefを使用する必要があります。
(すなわちなし接尾辞)は、おそらくアプリケーション固有のものです。uint32
uint64
_t
stdint.h
はそれらすべてを必要とします。
typedef uint32_t Uint32;
、include / SDL_stdinc.h(SDLユーザーの場合)にそのようなエイリアスを定義します
これらの整数型はすべてで定義されています stdint.h
stdint.h
C99標準を尊重しているなら、あなたはそれを得ると思います。
stdint.h
。これは0ヒットを返します:grep uint32 /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h | grep -v uint32_t
。
#include "stdint-gcc.h"
、そのファイルをgrepすると定義が生成されます。
_t
上記の回答にリストされているように、標準であり、定義する必要があるのは、サフィックスを持つものだけです。
C99を使用している場合は、を含めてくださいstdint.h
。ところで、64ビットタイプは、プロセッサがサポートしていれば存在します。
uint128_t
場合は__SIZEOF_INT128__
16以上(GCCと互換)に定義されています。これはx86_64 / amd64マシンで使用できますが、プロセッサーはそれをネイティブでサポートしていません。クレイだけがそのレジスターサイズを持っています、IIRC。
int_leastNN_t
及びuint_leastNN_t
ためのNN
8、16、32、及び64が常に存在しなければなりません。C99は、少なくとも64ビットの整数型をlong long
必要とするため、少なくとも64ビットの整数型がない実装は許可されません。