#define VS const

jadoud Messages postés 19 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 23 mars 2011 - 20 juil. 2010 à 15:05
jadoud Messages postés 19 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 23 mars 2011 - 20 juil. 2010 à 16:58
bjr,
SVP si vous peuvez me aider et me dire la difference entre
#define var_st
et
const var_st
merci

4 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
20 juil. 2010 à 15:45
Salut,

D'un point de vue utilisation, les deux sont identiques et ont le meme but : deéfinir une valeur non modifiable.
D'un point de vue compilation, toutes les instance de #define sont remplacées dans le code lors de la generation du binaire.
A l'inverse le const est alloué dynamiquement lors de son utilisation.

Shell
jadoud Messages postés 19 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 23 mars 2011
20 juil. 2010 à 16:02
merci DeAtHCrAsH
mais j'ai pas bien comprit svp si possible de me explice de plus
merci
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
20 juil. 2010 à 16:31
Lorsque tu programme tu écrit des lignes de codes, ensuite le compilateur prend ces lignes et les transforme en code binaire pour créer un executables.

Les #define sont comme des macros, c'est a dire que tout les endroit dans ton code ou le define est utilisé seront remplacé par la valeur du define au moment de la compilation.

Exemple :

#define MY_DEF 10
...
if(myInt == MY_DEF) {...}

A la compilation, le compilateur va supprimer la declaration du #define et transformer le code comme suit :

if(myInt == 10) {...}


A l'inverse le CONST ne sera jamais remplacé durant la compilation.
Il sera alloué lors du lancement de ton programme deja compilé.


Shell
jadoud Messages postés 19 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 23 mars 2011
20 juil. 2010 à 16:58
merci DeAtHCrAsH
Rejoignez-nous