以下是来自iphone游戏开发书的头文件中的一些实例变量:
CGFloat *point;
int count;
CGFloat vectorScale;
现在我绝对糊涂了。在点ivar之前那个星号是什么? CGFLoat是一类还是不是?
答案 0 :(得分:3)
CGFloat只是一个C typedef for float或double,具体取决于你的平台。在现代机器上它可能是双倍的。这意味着*指向浮点数的指针。鉴于该名称,它可能(有根据的猜测)指向x y坐标的交错数组。
答案 1 :(得分:1)
这不是一个班级。在iOS上,它是float
。在osx上,它是float
或double
。
星号表示point
是指向CGFloat
的指针。一本介绍性的C书将解释指针。
答案 2 :(得分: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它从来不是一个类: - )