Question

Voici quelques variables d'instance dans un fichier d'en-tête d'un livre de develpment jeu iphone:

CGFloat *point;
int count;
CGFloat vectorScale;

Maintenant, je suis absolutaley confus. Qu'est-ce que le point astérisque avant Ivar? Est-CGFLoat une classe aussi bien que ce n'est pas?

Était-ce utile?

La solution

A CGFloat est juste un typedef C pour flotteur ou double en fonction de votre plate-forme. Sur les machines modernes est probablement un double. Cela signifie que le point * comme un pointeur sur un flotteur. Compte tenu de ce nom, sa (supposition) probablement un pointeur vers un tableau entrelacée de coordonnées x y.

Autres conseils

ce n'est pas une classe. sur iOS, il est un float. sur osx, il est float ou double.

l'astérisque indique que point est un pointeur vers un CGFloat. un livre d'introduction C expliquera les pointeurs.

Si vous voulez savoir ce que l'une de ces choses est dans Xcode, option cliquez sur le type. Vous serez amené à sa définition réelle. Ce que je reçois est:

#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 il est jamais une classe: -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top