cgfloatは両方のクラスではありませんか?
-
27-10-2019 - |
質問
iPhoneゲームDevelment Bookのヘッダーファイルのいくつかのインスタンス変数を次に示します。
CGFloat *point;
int count;
CGFloat vectorScale;
今、私は絶対的な混乱しています。ポイントイバーの前のアスタリスクは何ですか? cgfloatはクラスではありませんか?
解決
CGFLOATは、プラットフォームに応じて、フロート用のC Typedefまたはダブルにすぎません。現代の機械では、おそらく二重です。これは、 *フロートへのポインターとして *ポイントを意味します。その名前を考えると、おそらく(教育を受けた推測)XY座標のインターリーブ配列へのポインターがあります。
他のヒント
クラスではありません。 iOSでは、それはaです float
. 。 OSXでは、そうです float
また double
.
アスタリスクはそれを言います point
aへのポインターです CGFloat
. 。入門Cの本は、ポインターを説明します。
これらの1つがXcodeにあるものを知りたい場合は、タイプをオプションクリックしてください。あなたはその実際の定義にとらわれます。私が得るのは:
#if defined(__LP64__) && __LP64__
# define CGFLOAT_TYPE double
# define CGFLOAT_IS_DOUBLE 1
# define CGFLOAT_MIN DBL_MIN
# define CGFLOAT_MAX DBL_MAX
#else /* !defined(__LP64__) || !__LP64__ */
# define CGFLOAT_TYPE float
# define CGFLOAT_IS_DOUBLE 0
# define CGFLOAT_MIN FLT_MIN
# define CGFLOAT_MAX FLT_MAX
#endif /* !defined(__LP64__) || !__LP64__ */
typedef CGFLOAT_TYPE CGFloat;
#define CGFLOAT_DEFINED 1
TL:DRそれは決してクラスではありません:-)
所属していません StackOverflow