以下是 iphone 游戏开发书的头文件中的一些实例变量:
CGFloat *point;
int count;
CGFloat vectorScale;
现在我很困惑。点 ivar 之前的星号是什么?CGFLoat 是一个类还是不是?
以下是 iphone 游戏开发书的头文件中的一些实例变量:
CGFloat *point;
int count;
CGFloat vectorScale;
现在我很困惑。点 ivar 之前的星号是什么?CGFLoat 是一个类还是不是?
CGFloat 只是浮动或双精度的 C 类型定义,具体取决于您的平台。在现代机器上,它可能是双倍的。这意味着 *point 作为指向浮点数的指针。给定这个名字,它可能(有根据的猜测)是一个指向 xy 坐标交错数组的指针。
这不是一堂课。在 iOS 上,它是一个float
. 在 osx 上,它是float
or double
。
星号表示这point
是指向 a 的指针CGFloat
。一本介绍性的 C 书籍将解释指针。
如果您想知道 Xcode 中的其中一项是什么,请在类型上单击选项。您将获得“跳转到定义”选项。
在斯威夫特:
public struct CGFloat {
...
(包含在核心图形中)
在您的问题中,您在目标 C 中:
#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 它似乎还不是一个类,但它是一个结构、浮点或双精度,这取决于你在哪里。