Pregunta

Aquí hay algunas variables de instancia en un archivo de encabezado de un libro de desarrollo del juego de iPhone:

CGFloat *point;
int count;
CGFloat vectorScale;

Ahora estoy absolutamente confundido. ¿Qué es ese asterisco antes del punto Ivar? ¿Es CGFloat una clase tan bien?

¿Fue útil?

Solución

Un CGFloat es solo un tipEdef C para flotador o un doble dependiendo de su plataforma. En las máquinas modernas es probablemente un doble. Esto significa que *apunta como un puntero a un flotador. Dado ese nombre, es probablemente (suposición educada) un puntero a una matriz entrelazada de coordenadas XY.

Otros consejos

No es una clase. En iOS, es un float. En OSX, es float o double.

El asterisco dice que point es un puntero a un CGFloat. Un libro de introductorio C explicará consejos.

Si desea saber qué es una de estas cosas en Xcode, haga clic en la opción en el tipo. Te llevarán a su definición real. Lo que obtengo es:

#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 nunca es una clase :-)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top