Langage C
Portée des variables internes. Attribut register
La portée ou la visibilité d’une variable est l’endroit du programme où elle existe et est accessible. La portée d’une variable interne est le bloc où elle est déclarée ainsi que tous les blocs contenus dedans à l’exception de ceux dans lesquels cette variable a fait l’objet d’une redéclaration. Pour déclarer une variable interne permanente il suffit de mentionner l’attribut static lors de sa déclaration. Par défaut, en l’absence d’attribut de classe mémoire, une variable interne est temporaire et reçoit l’attribut auto. Ce type de variable est alloué dynamiquement dans le «stack» ou pile d’exécution (pile de type LIFO). Lorsqu’une variable est très utilisée, il peut être avantageux de demander au compilateur qu’elle soit, dans la mesure du possible, rangée dans un registre de la machine. Cette possibilité, qui ne peut s’appliquer qu’à des variables temporaires, ne sera satisfaite que s’il existe des registres disponibles au format de la donnée. C’est l’attribut register spécifié à la déclaration qui permet de formuler une telle demande. Dans une boucle de type for, il est possible de déclarer la ou les variables intervenant au niveau de l’expression dite d’initialisation. De ce fait, celles-ci ont une portée limitée à la boucle : for (int i=0; i<n; i++).