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.
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.
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.
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.
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++.
© Septiembre de 2.000 Salvador Pozo, salvador@c-con-clase.every1.net