MSVC++ コンパイラでは、特定のサイズの整数に対して__int8
、__int16
、および同様の型を使用できます。__int32
これは、カスタム ファイル形式、ハードウェア制御データ構造などの低レベル データ構造を扱う必要があるアプリケーションに非常に役立ちます。
GCC コンパイラで使用できる同等のものはありますか?
MSVC++ コンパイラでは、特定のサイズの整数に対して__int8
、__int16
、および同様の型を使用できます。__int32
これは、カスタム ファイル形式、ハードウェア制御データ構造などの低レベル データ構造を扱う必要があるアプリケーションに非常に役立ちます。
GCC コンパイラで使用できる同等のものはありますか?
ISO 標準 C は、C99 標準から始まり、<stdint.h>
これらを定義する標準ヘッダーを追加します。
uint8_t - unsigned 8 bit
int8_t - signed 8 bit
uint16_t - unsigned 16 bit
int16_t - signed 16 bit
uint32_t - unsigned 32 bit
int32_t - signed 32 bit
uint64_t - unsigned 64 bit
int64_t - signed 64 bit
私はいつもこれらのタイプを使用しています。
これらの型は、実装が適切なサイズと特性を持つ事前定義された型をサポートする場合にのみ定義されます (ほとんどの場合)。
<stdint.h>
また、フォームの名前を持つ型(u)int_leastN_t
(少なくとも指定された幅を持つ型) および(u)int_fastN_t
(少なくとも指定された幅を持つ「最速」の型) を定義します。これらのタイプは必須です。
をサポートしていない古い実装を使用している場合は<stdint.h>
、独自のものを作成できます。1 つの実装はDoug Gwyn の "q8"です。