Curso de C++ (Página 27)

pagina026 Principal pagina028

CAPITULO 27 Tipos de Variables V: tipos de almacenamiento

Existen ciertos modificadores de variables que se nos estaban quedando en el tintero y que no habíamos visto todavía. Estos modificadores 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

Sintaxis:

[auto] <definición_de_dato> ;

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.

register

Sintaxis:

register <definición_de_dato> ;

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.

static

Sintaxis:

static <definición_de_dato> ;

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

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.

extern

Sintaxis:

extern <definición_de_dato>;

[extern] <función_prototipo>;

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.

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++.


pagina026 Principal pagina028