SophiaFramework UNIVERSE 5.3 |
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)) { ... } // 正しい使い方
注意 | |
---|---|
SophiaFramework UNIVERSE では、 Bool 値を返す関数は、 「真」を表す値として true(= 1)を返すことを保証しません。 C 言語と同様に、戻り値が 0 以外の値の場合は「真」として扱う必要があります。 |
Bool MyFunction(SIntN flag) {
return (flag & 0x4000); // 誤った使い方
}
注意 | |
---|---|
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); // 正しい使い方 }
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)
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)
// 汎用の符号付き整数 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
SFMTYPEDEFALIAS(float, Float32) SFMTYPEDEFALIAS(double, Float64)
注意 | |
---|---|
SophiaFramework UNIVERSE では C / C++ 言語の浮動小数点演算が使えるので、BREW のヘルパー関数は不要です。 |
浮動小数点演算子を使うときの注意 | |
---|---|
浮動小数点ライブラリをリンクするため、使う演算子の種類毎にアプリサイズが増えます。 |
Float64 num1(255); Float64 num2(123.5); Float64 num3; num3 = (num1 + num2) / (num1 - num3); if (num3 < num1) { ... }
注意 | |
---|---|
BREW API に含まれない三角関数や指数・対数関数も使えます。 高速な三角関数演算 SFXTrigonometric クラスも利用可能です。 詳細情報 : RealView コード生成ツールの数学関数 |
SFMTYPEDEFALIAS(char, AChar) SFMTYPEDEFALIAS(AECHAR, WChar)
AChar と WChar | |
---|---|
AChar は、typedef により、 シングルバイト/マルチバイト文字 (または ANSI 文字) を表す char 型の別名として定義されます。 一方、 WChar は、typedef により、 ダブルバイト文字を表す AECHAR 型 (または uint16 型) の別名として定義されます。 なお、AECHAR は、BREW SDK の "AEEStdDef.h" ヘッダーファイル のなかで以下のように定義されています。 typedef uint16 AECHAR;
|
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |