前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3

26.2. 基本型

26.2.1. Bool 型

定義

SFMTYPEDEFALIAS(boolean, Bool)

#undef          true
#define         true                (TRUE)
#undef          false
#define         false               (FALSE)

boolean 型は、BREW SDK の AEEStdDef.h ファイル内で以下のように定義されています。

#ifndef _BOOLEAN_DEFINED
typedef  unsigned char      boolean;     /* Boolean value type. */
#define _BOOLEAN_DEFINED
#endif

参照: SFMTYPEDEFALIAS

使用例

if (SFXAscii::IsDigit(ch) == true) { ... }   // 誤った使い方
if (SFXAscii::IsDigit(ch)) { ... }           // 正しい使い方
[Note] 注意

SophiaFramework UNIVERSE では、 Bool 値を返す関数は、 「真」を表す値として true(= 1)を返すことを保証しません。 C 言語と同様に、戻り値が 0 以外の値の場合は「真」として扱う必要があります。

Bool MyFunction(SIntN flag) {
    return (flag & 0x4000);   // 誤った使い方
}
[Note] 注意

C 言語では論理値は int 型で表しますが、 SophiaFramework UNIVERSE の Bool 型は unsigned char 型です。

従って、MyFunction 関数の戻り値は常に false(= 0)になります。

Bool MyFunction(int flag) {
    return (flag & 0x4000 != 0);   // 正しい使い方
}
        
// または
        
Bool MyFunction(int flag) {
    return !!(flag & 0x4000);      // 正しい使い方
}

26.2.2. Void 型

定義

typedef     void                     Void, *VoidPtr, **VoidHandle;
typedef     void volatile            VoidVolatile, *VoidVolatilePtr, **VoidVolatileHandle;
typedef     void const               VoidConst, *VoidConstPtr, **VoidConstHandle;
typedef     void volatile const      VoidVolatileConst, *VoidVolatileConstPtr, **VoidVolatileConstHandle;
SFMTYPEDEFPACK(VoidPtr)
SFMTYPEDEFPACK(VoidHandle)

26.2.3. 汎用ポインタ型・汎用ハンドル型

定義

typedef     char                                &Ref, *Ptr, **Handle;
typedef     char volatile                       &VolatileRef, *VolatilePtr, **VolatileHandle;
typedef     char const                          &ConstRef, *ConstPtr, **ConstHandle;
typedef     char volatile const                 &VolatileConstRef, *VolatileConstPtr, **VolatileConstHandle;
SFMTYPEDEFPACK(Ptr)
SFMTYPEDEFPACK(Handle)

26.2.4. 整数型

定義

// 汎用の符号付き整数
SFMTYPEDEFALIAS(signed int, SIntN)

// 汎用の符号なし整数
SFMTYPEDEFALIAS(unsigned int, UIntN)

// 8 ビット符号付き整数
SFMTYPEDEFALIAS(signed char, SInt08)

// 8 ビット符号なし整数
SFMTYPEDEFALIAS(unsigned char, UInt08)

// 16 ビット符号付き整数
SFMTYPEDEFALIAS(signed short, SInt16)

// 16 ビット符号なし整数
SFMTYPEDEFALIAS(unsigned short, UInt16)

// 32 ビット符号付き整数
SFMTYPEDEFALIAS(signed long, SInt32)

// 32 ビット符号なし整数
SFMTYPEDEFALIAS(unsigned long, UInt32)

// 64 ビット符号付き整数
#if defined TARGET_COMPILER_MSVCPP
SFMTYPEDEFALIAS(signed __int64, SInt64)
#else
SFMTYPEDEFALIAS(signed long long, SInt64)
#endif

// 64 ビット符号なし整数
#if defined TARGET_COMPILER_MSVCPP
SFMTYPEDEFALIAS(unsigned __int64, UInt64)
#else
SFMTYPEDEFALIAS(unsigned long long, UInt64)
#endif

26.2.5. 浮動小数点型

定義

SFMTYPEDEFALIAS(float, Float32)
SFMTYPEDEFALIAS(double, Float64)
[Note] 注意
SophiaFramework UNIVERSE では C / C++ 言語の浮動小数点演算が使えるので、BREW のヘルパー関数は不要です。
[Caution] 浮動小数点演算子を使うときの注意

浮動小数点ライブラリをリンクするため、使う演算子の種類毎にアプリサイズが増えます。

使用例

Float64 num1(255);
Float64 num2(123.5);
Float64 num3;

num3 = (num1 + num2) / (num1 - num3);

if (num3 < num1) {
      ...
}
[Note] 注意

BREW API に含まれない三角関数や指数・対数関数も使えます。

高速な三角関数演算 SFXTrigonometric クラスも利用可能です。

詳細情報 : RealView コード生成ツールの数学関数

26.2.6. バイト型

定義

SFMTYPEDEFALIAS(UInt08, Byte)

26.2.7. 文字型

定義

SFMTYPEDEFALIAS(char, AChar)
SFMTYPEDEFALIAS(AECHAR, WChar)
[Note] AChar と WChar

AChar は、typedef により、 シングルバイト/マルチバイト文字 (または ANSI 文字) を表す char 型の別名として定義されます。

一方、 WChar は、typedef により、 ダブルバイト文字を表す AECHAR 型 (または uint16 型) の別名として定義されます。

なお、AECHAR は、BREW SDK の "AEEStdDef.h" ヘッダーファイル のなかで以下のように定義されています。

typedef    uint16   AECHAR;