Constantes et variables: quelle est la réelle différence?

Il semble évident, mais certains échapper à la différence subtile entre les constantes et les variables dans un langage de programmation. Les constantes, à partir du nom, ne changez pas leur valeur au cours du cycle d'un programme, tandis que les variables peuvent le faire! Souvent, toutefois, arriver à utiliser des variables au lieu de constantes sans s'en rendre compte, aussi parce que ce n'est pas l'impact de la logique d'une application. Malgré cela, la différence entre les constantes et les variables, et il se dégage tout à la compilation, où la constante joue un rôle certainement plus puissant.

En venant de C ou de programmation de l'Assemblée connaît la différence entre les constantes et les variables, en particulier parce que, dans les deux assemblage et C, les constantes jouer un rôle par MACRO. Pour MACRO signifiait dans un "morceau de code" qui est étiqueté et remplacé dans le code à la compilation. Le compilateur, en bref, effectue une sorte de trouver .. remplacer (et est sostituitsci) dans le code chaque fois qu'il rencontre une constante.

Imaginez que vous écrivez en C, la pièce simple suivante de code:

1
2
3
4
5 ; int a = 5;
3 ; int b = 3;
int c;
b ; c = a + b;

sono indicate come variabili in questo caso. Que ce soit a ce qui b sont présentés comme des variables dans ce cas. En C, en fait, les constantes sont définies avec le mot clé #define . sono state definite come int . Nous constatons immédiatement que a ce qui b a été définie comme int . Déjà là, vous pouvez faire une première optimisation. Si nous savons que notre variable a ne jamais dépasser une certaine valeur, vous devez le déclarer correctement et ne pas utiliser les types de données au hasard. Certains développeurs ne vous embêtez pas à déclarer les types corrects, pensant que cela n'affecte pas la performace! Faux! Alternativement, il est acceptable que le premier projet de code ne comporte pas ce niveau de détail. Cependant, il est une bonne règle, au cours du processus de développement, l'examen du code et de vérifier les types de données.
Toutefois, dans une assemblée de la famille Motorola, par exemple, comme le 68000 mythique, aurait saisir notre code compilé (sans optimisations) en une sorte de:

1
2
3
4
, d0 ; int a déplacer le # 5, d0; Int.
, d1 ; int b bouger. l'# 3, d1, int b
d2 ; int c - foo déplacer le D1, D2, int c -. foo
l d0 , d2 ; risultato in d2 ovvero c ajouter. d0 l', D2, D2, ou le résultat de c

ou:

1
2
3
, d0 ; int a déplacer le # 5, d0; Int.
, d1 ; int b bouger. l'# 3, d1, int b
d1 ; risultato in d1... bouger. L D0, D1, D1 résultat ...

Le compilateur, si habiles, l'effort dans les optimisations, puis écrire le code avec le mot-clé droit ne peut contribuer à améliorer la sortie compilée. Dans notre cas, si la valeur 5 est une constante n'est pas pratique d'utiliser une variable entière, car le compilateur, et à juste titre, compte tenu de la variable variable, en fait, une predisponde ensemble facile à contenir la valeur 5, ce qui en binaire est de 101, soit occupe trois bits unique (le cas échéant, int est un 32bit ou 53bit pire une double précision en virgule flottante!). Si l'on avait écrit le code comme ceci:

1
2
3
4
5
5 # define MIA_COSTANTE

3 ; int b = 3;
int c;
b ; c = b + MIA_COSTANTE;

Le compilateur sache dès le départ que MIA_COSTANTE , étant constant, la valeur ne changera pas donc je peut réserver moins de place pour la traiter. En pratique, le code de diverebbe Assemblée:

1
2
3
d0 ; la "q" indica una istruzione "quick", cioè che tratta valori compresi tra -128 e +127 moveq # 3, d0; le "Q" indique une déclaration «rapide», qui est des valeurs comprises entre -128 et +127
, Une déclaration «rapide» prend moins de temps CPU (4 cycles d'horloge dans ce cas)
d0 ; anche qui uso una istruzione "quick" addq # 5, d0; ici un manuel d'instruction "rapide"

Ce code est très rapide et prend moins d'octets. Ce que nous devons garder à l'esprit est que lorsque vous déclarez une variable d'environnement se prépare à le traiter comme tel, même si les compilateurs d'aujourd'hui peut faire des miracles, en effectuant une série d'étapes dans le code avant compilation (certains compilateurs, même effectuer une sorte de programme de simulation pour optimiser la compilation en code machine).

Une bonne règle est donc de déclarer le bon type pour nos variables, bien que ces sommes. Sinon, utiliser les constantes, surtout si le langage de programmation, nous utilisons les attendus (comme dans le cas de la nouvelle Flash CS3).

Il n'y a aucun commentaire pour cet article

Laisser un commentaire

XHTML TAG PERMIS: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CODE D'INSERTION:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Arrêtez SOPA