Macro constante, bien ou pas ?
Flo
Membre
Bonjour à tous,
J'utilise pas mal l'instruction pré-processeur #define, mais je suis en train de me demander si cela n'aurait pas des effets de bord notamment au niveau de l'allocation mémoire de certains objets, je m'explique sur un petit exemple :
#define NAME_0 @titi
#define NAME_1 @toto
Première exemple :
deuxième exemple :
Si je ne n'abuse l'exemple 1 va créer plus de chaà®nes @titi et @toto que l'exemple 2 ?
Si c'est le cas, ne vaudrait-il pas mieux créer des constantes afin de pouvoir ré-utiliser les même chaà®nes si on souhaite créer des NSDictionary supplémentaires ?
J'utilise pas mal l'instruction pré-processeur #define, mais je suis en train de me demander si cela n'aurait pas des effets de bord notamment au niveau de l'allocation mémoire de certains objets, je m'explique sur un petit exemple :
#define NAME_0 @titi
#define NAME_1 @toto
Première exemple :
<br /> NSDictionary *dico0 = [NSDictionary dictionaryWithObjectsAndKeys: NAME_0, NAME_0, NAME_1, NAME_1, nil];<br /><br /> NSDictionary *dico1 = [NSDictionary dictionaryWithObjectsAndKeys: NAME_0, NAME_0, NAME_1, NAME_1, nil];<br />
deuxième exemple :
<br /> NSString *name0 = NAME_0, *name1 = NAME_1;<br /><br /> NSDictionary *dico0 = [NSDictionary dictionaryWithObjectsAndKeys: name0, name0, name1, name1, nil];<br /><br /> NSDictionary *dico1 = [NSDictionary dictionaryWithObjectsAndKeys: name0, name0, name1, name1, nil];<br />
Si je ne n'abuse l'exemple 1 va créer plus de chaà®nes @titi et @toto que l'exemple 2 ?
Si c'est le cas, ne vaudrait-il pas mieux créer des constantes afin de pouvoir ré-utiliser les même chaà®nes si on souhaite créer des NSDictionary supplémentaires ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
resultats:
adresses: 48010 48010 48010 retainCount:7fffffff
Tout pointe sur les constantes texte en dur dans l'exécutable...
On s'arrange pour nous de ne créer qu'une chaà®ne et de faire des retain dessus au endroits appropriés ?
Merci à tous !