目次

long型のデータサイズに注意(64bitコンパイラ)

LinuxでのCコンパイラで、32bit環境と64bit環境では、long型のデータサイズが違うので注意。

データ型とサイズ

型名 サイズ (32 ビット) サイズ (64 ビット) 備考
char 1 バイト 1 バイト
short 2 バイト 2 バイト
int 4 バイト 4 バイト
long 4 バイト 8 バイト サイズが異なる
long long 8 バイト 8 バイト

stdint.hでのデータサイズ

最近のCコンパイラでは、stdint.h で定義の型が使えるようになっているので、極力この型を使うようにした方がよい。

型名 説明 備考
int8_t 1 バイトの符号付き整数
int16_t 2 バイトの符号付き整数
int32_t 4 バイトの符号付き整数
int64_t 8 バイトの符号付き整数
intptr_t ポインタと同じサイズの符号付き整数
uint8_t 1 バイトの符号なし整数
uint16_t 2 バイトの符号なし整数
uint32_t 4 バイトの符号なし整数
uint64_t 8 バイトの符号なし整数
uintptr_t ポインタと同じサイズの符号なし整数

参考