11.2 ARM C および C++ の基本データ型

ARM C および C++ で実装されている基本データ型について説明します。

基本データ型のサイズと境界整列

以下の表は、基本データ型のサイズと自然境界整列を示しています。

表 11-2 データ型のサイズと境界整列

タイプ サイズ(ビット数) 自然配列(バイト数) 値の範囲
char 8 1(バイト境界で整列)
デフォルトでは 0 ~ 255(符号なし)。
--signed_chars でコンパイルした場合、-128 ~ 127(符号付き)。
signed char 8 1(バイト境界で整列)
–128 ~ 127
unsigned char 8 1(バイト境界で整列)
0 ~ 255
(符号付き)short 16 2(ハーフワード境界で整列) –32,768 ~ 32,767
unsigned short 16 2(ハーフワード境界で整列) 0 ~ 65,535
(符号付き)int 32 4(ワード境界で整列) –2,147,483,648 ~ 2,147,483,647
unsigned int 32 4(ワード境界で整列) 0 ~ 4,294,967,295
(符号付き) long 32 4(ワード境界で整列) –2,147,483,648 ~ 2,147,483,647
符号なし long 32 4(ワード境界で整列) 0 ~ 4,294,967,295
(符号付き)long long 64 8(ダブルワード境界で整列) –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
符号なし long long 64 8(ダブルワード境界で整列) 0 ~ 18,446,744,073,709,551,615
float 32 4(ワード境界で整列) 1.175494351e-38 ~ 3.40282347e+38(正規化された値)
double 64 8(ダブルワード境界で整列) 2.22507385850720138e-308 ~ 1.79769313486231571e+308(正規化された値)
long double 64 8(ダブルワード境界で整列) 2.22507385850720138e-308 ~ 1.79769313486231571e+308(正規化された値)
wchar_t
16
32
2(ハーフワード境界で整列)
4(ワード境界で整列)
デフォルトでは 0 ~ 65,535。
--wchar32 でコンパイルした場合、0 ~ 4,294,967,295。
すべてのポインタ 32 4(ワード境界で整列) なし。
bool (C++ のみ) 8 1(バイト境界で整列) false または true
_Bool (C のみa 8 1(バイト境界で整列) false または true
型の境界整列は、コンテキストに応じて変化します。
  • 通常、ローカル変数はレジスタに保持されますが、ローカル変数が多くなりスタックを使用する場合は、常にワード境界で整列されます。例えば、ローカル変数 char がスタック上に配置される場合の境界整列は 4 です。
  • パック型の自然境界整列は 1 です。

Integer

整数は、2 の補数形式で表現されます。 long long の下位ワードは、リトルエンディアンモードでは下位アドレス、ビッグエンディアンモードでは上位アドレスに配置されます。

浮動小数点数

浮動小数点数は、IEEE 形式で保存されます。
  • float 値は、IEEE の単精度値で表現されます。
  • double 値と long double 値は、IEEE の倍精度値で表現されます。
double 値と long double 値の場合、符号、指数、および仮数の最上位部を保持するワードは、ビッグエンディアンモードでは下位マシンアドレスに、リトルエンディアンモードでは上位マシンアドレスに保存されます。

Arrays and pointers

以下は、メンバへのポインタを除き、C および C++ のオブジェクトを指すすべてのポインタに適用されます。
  • 隣接するバイトには、1 つずつ異なるアドレスが割り当てられます。
  • マクロ NULL は値 0 に展開されます。
  • 整数とポインタ間のキャストによって表現が変化することはありません。
  • コンパイラでは、関数へのポインタとデータへのポインタ間のキャストについて警告を生成します。
  • size_t 型は、unsigned int として定義されます。
  • ptrdiff_t 型は、signed int として定義されます。
a
stdbool.h では、C 言語の bool マクロを定義できます。
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.