Exood4 Studio - Video Game Development, Toulouse (France)
Exood4 Studios Exood4 Tutorials

   
L a n g a g e   C

L e s   i n s t r u c t i o n s






 Elles sont composées de mots clés et d'expressions. On distingue :
  • les instructions élémentaires qui sont construites à partir d'expressions,
  • les instructions composées construites à partir d'autres instructions
  • les instructions de contrôle (conditionnelles, itératives, rupture de séquences ...)

L'instruction élémentaire


 L'instruction élémentaire est une expression suivie par un point virgule. La valeur de l'expression est alors perdue, mais des effets de bord peuvent se produire lors de son évaluation.

 x = 1; transforme l'expression d'affectation en instruction d'affectation, la valeur de l'expression est alors perdue.


L'instruction composée


 C'est un bloc contenant des déclarations, des définitions et des instructions, le tout entouré d'accolades. Un bloc est considéré comme une seule instruction. Il peut contenir d'autres blocs.


Les définitions dans un bloc

 Il est possible de définir des types (voir typedef), des variables, mais il n'est pas possible de définir des fonctions. L'imbrication de fonctions n'existe pas en C, chaque fonction étant définie en dehors de tout bloc, au niveau global. Les définitions doivent précéder la première instruction.

 Les variables définies en début de bloc sont des variables locales. Elles se différencient des variables globales définies en dehors de tout bloc. Les variables locales ne sont visibles que dans le bloc de définition et dans ses sous-blocs. Leur durée de vie n'est par contre pas toujours limitée à celle du bloc voir classes d'allocation). Elles masquent les variables de mêmes noms définies à l'extérieur, ces variables masquées conservent leur valeur et redeviennent accessibles à la sortie du bloc.

 Les variables locales sont par défaut automatiques, c'est à dire qu'elles naissent à l'entrée du bloc et sont détruites à la sortie (ce mécanisme permet d'avoir des blocs réentrants, ce qui autorise en particulier l'écriture de fonctions récursives)

 L'utilisation des variables locales permet de réduire la taille de la mémoire nécessaire à l'exécution d'un programme, puisqu'une même zone mémoire peut être partagée par différentes variables. La mémoire nécessaire à l'utilisation des variables globales est toujours allouée à la compilation. Cet espace ne peut donc pas être récupéré au cours de l'exécution d'un programme. En limitant la visibilité des variables, on diminue également le risque de les modifier par erreur et on localise leur zone d'influence :


{
 int i;
 ...
 i = 0;
 {
 int i = 5;
 i++; /* i vaut 6 */
 ...
 }
 i++; /* i vaut 1 */
 ...
}


 Cependant seuls les blocs de niveau supérieur comportent en général de telles définitions, car l'abondance de masquage peut nuire à la clarté d'un programme.


  Retour en haut de page Page suivante