Вопрос

Вот некоторые переменные экземпляра в файле заголовка из книги 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: Доктор. Это никогда не класс :-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top