3.6.2. Variables locales

Las variables locales son las que se encuentran dentro de un ámbito; son «locales» a una función. A menudo se las llama variables automáticas porque aparecen automáticamente cuando se entra en un ámbito y desaparecen cuando el ámbito se acaba. La palabra reservada auto lo enfatiza, pero las variables locales son auto por defecto, de modo que nunca se necesita realmente declarar algo como auto.

Variables registro

Una variable registro es un tipo de variable local. La palabra reservada register indica al compilador «Haz que los accesos a esta variable sean lo más rápidos posible». Aumentar la velocidad de acceso depende de la implementación, pero, tal como sugiere el nombre, a menudo se hace situando la variable en un registro del microprocesador. No hay garantía alguna de que la variable pueda ser ubicada en un registro y tampoco de que la velocidad de acceso aumente. Es una ayuda para el compilador.

Hay restricciones a la hora de utilizar variables registro. No se puede consular o calcular la dirección de una variable registro. Una variable registro sólo se puede declarar dentro de un bloque (no se pueden tener variables de registro globales o estáticas). De todos modos, se pueden utilizar como un argumento formal en una función (es decir, en la lista de argumentos).

En general, no se debería intentar influir sobre el optimizador del compilador, ya que probablemente él hará mejor el trabajo de lo que lo pueda hacer usted. Por eso, es mejor evitar el uso de la palabra reservada register.