BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR
Tema 6 Declaración de Variables
Teoría: Tipos de almacenamiento

Existen ciertos modificadores de variables que afectan al modo en que se almacenan las variables y a su ámbito temporal, es decir, la zona de programa desde donde las variables son accesibles.

auto
El modificador auto se usa para definir el ámbito temporal de una variable local. Es el modificador por defecto para las variables locales, y se usa muy raramente.

Sintaxis:

[auto] <definición_de_dato> ;

register
Indica al compilador una preferencia para que la variable se almacene en un registro de la CPU, si es posible, con el fin de optimizar su acceso y reducir el código.
Los datos declarados con el modificador register tienen un ámbito temporal global. El compilador puede ignorar la petición de almacenamiento en registro, éste está basado en el análisis que realice el compilador sobre cómo se usa la variable.

Sintaxis:

register <definición_de_dato> ;

static
Se usa con el fín de que las variables locales de una función conserven su valor entre distintas llamadas sucesivas a la misma. Las variables estáticas tienen un ámbito local con respecto a su accesibilidad, pero temporalmente son como las variables externas.

Sintaxis:

static <definición_de_dato> ;
static <nombre_de_función> <definición_de_función>;

extern
Este modificador se usa para indicar que el almacenamiento y valor de una variable o la
definición de una función está definido en otro módulo o fichero fuente. Las funciones
declaradas con extern son visibles por todos los ficheros fuente del programa, salvo que
se redefina la función como static.

Sintaxis:

extern <definición_de_dato>;
[extern] <función_prototipo>;

El modificador extern es opcional para las funciones prototipo.
Se puede usar extern "c" con el fin de prevenir que algún nombre de función pueda ser ocultado por funciones de programas C++.