CGfloat - как класс, а не?
-
27-10-2019 - |
Вопрос
Вот некоторые переменные экземпляра в файле заголовка из книги Develpment Game Iphone:
CGFloat *point;
int count;
CGFloat vectorScale;
Теперь я смущен. Что это за звездочка до того, как Ivar? CGfloat - это класс, а также нет?
Решение
CGfloat - это просто C Typedef для Float или двойник в зависимости от вашей платформы. На современных машинах это, вероятно, двойник. Это означает, что *указывает как указатель на поплавок. Учитывая это имя, это, вероятно, (образованное предположение) указатель на черновой массив координат XY.
Другие советы
Это не класс. На iOS это float
. Анкет На OSX это float
или же double
.
звездочка говорит, что point
указатель на CGFloat
. Анкет Вводная книга C объяснит указатели.
Если вы хотите знать, что одна из них в 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: Доктор. Это никогда не класс :-)