12

MSVC++ コンパイラでは、特定のサイズの整数に対して__int8__int16、および同様の型を使用できます。__int32これは、カスタム ファイル形式、ハードウェア制御データ構造などの低レベル データ構造を扱う必要があるアプリケーションに非常に役立ちます。

GCC コンパイラで使用できる同等のものはありますか?

4

1 に答える 1

30

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"です。

于 2008-11-06T17:56:31.797 に答える