Optimisation avec macro

Résolu
freakstreet Messages postés 17 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 2 mai 2006 - 2 mai 2006 à 14:51
freakstreet Messages postés 17 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 2 mai 2006 - 2 mai 2006 à 16:53
Bonjour à tous !

Je tente d'optimiser un code en C sur un microcontrolleur et avais une question sur l'utilisation de macros :

si je fais un
#define TAILLE_MON_TYPE sizeof(MonType)

est-ce-que la fonction sizeof sera réevaluée à chaque utilisation de TAILLE_MON_TYPE de ou ce sera directement la valeur de retour du sizeof qui sera implantéee dans le code ?

Merci à ceux qui m'éclaireront un peu.

Freakstreet

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 mai 2006 à 16:41
sizeof n'est pas une fonction, le compilo insère la valeur pendant la compilation.

ciao...
BruNews, MVP VC++
3
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
2 mai 2006 à 15:12
Salut
Lors de la compilation, a priori, tous tes TAILLE_MON_TYPE seront remplace par ton sizeof(MonType) dans ton code.
0
freakstreet Messages postés 17 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 2 mai 2006
2 mai 2006 à 15:39
Comme c'est dommage c'est justement ce que je ne voulais pas !
Merci pour ta réponse

Freakstreet
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
2 mai 2006 à 15:43
Au pire tu peux peut etre declarer une variable globale qui contient la valeur sizeof(MonType)  (initialisé en debut de programme) et de te reservir de cette valeur apres.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
freakstreet Messages postés 17 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 2 mai 2006
2 mai 2006 à 15:53
Malheureusement je ne peux pas, j'ai déjà ma pile de variables globales qui est full.
C'est pas grave, pas d'optimisation à ce niveau là.

Merci encore

Freakstreet
0
freakstreet Messages postés 17 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 2 mai 2006
2 mai 2006 à 16:53
Finalement c'est parfait alors !

Merci beaucoup à vous.

Freakstreet
0
Rejoignez-nous