(Este artículo forma parte del Curso de Programación en C)
En C existen ciertos modificadores de variables que se usan durante la definición de las mismas y que afectan al modo en que se almacenan las variables, así como a su ámbito, es decir, a la zona del programa desde donde las variables son accesibles. Estos son algunos de ellos.
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.
Por ejemplo:
void funcion1(void) {
auto int n; // La variable n será local a esta función
...
}
register
Indica al compilador que debe intentar que la variable se almacene en un registro de la CPU, cuando sea posible, con el fin de optimizar su tiempo de acceso.
Los datos declarados con el modificador register tienen siempre un ámbito global.
El compilador puede ignorar la petición de almacenamiento en registro, que sólo debe ser usado cuando una variable vaya a ser usada con mucha frecuencia y el rendimiento del programa sea un factor crucial.
Por ejemplo:
register int n; // La variable n se almacenará en un registro de la CPU (o no)
static
Este modificador se usa con el fin de que las variables locales de una función conserven su valor entre distintas llamadas a la misma.
Por ejemplo:
void funcion1(void) {
static int n; // La variable n no perderá su valor entre dos llamadas a la 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án definidos en otro 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.
Por ejemplo:
extern int n; // La variable n está declarada en otro fichero, pero la vamos
// a usar también en éste
const
Cuando se aplica a una variable, indica que su valor no puede ser modificado. Cualquier intento de hacerlo durante el programa generará un error. Por eso es imprescindible inicializar las variables constantes cuando se declaran.
En C++ es preferible usar este tipo de constantes en lugar de constantes simbólicas (macros definidas con #define). El motivo es que estas constantes tienen un tipo declarado, y el compilador puede encontrar errores por el uso inapropiado de constantes que no podría encontrar si se usan constantes simbólicas. En C es indiferente.
Por ejemplo:
const int n = 3; // Esta variable es, en realidad, una constante

1 comment
Comments feed for this article
Trackback link
http://profeblog.es/blog/alfredo/2009/01/30/tipos-de-almacenamiento-para-variables-en-c/trackback/
11 Junio 2009 at 16:44
Saul Gonzalez
y Como haces para leer archivos, y despues si kieres modificar una de sus lineas?