Pero si necesitas el acceso a la variable de todas las funciones en el archivo de fuente entero, esto poder también hecha con la palabra clave estática, pero poniendo la definición fuera de todas las funciones. Por ejemplo:
#include <stdio.h>
static int num = 10; /* ser accesible de archivo de fuente entero */
int main(void)
{
printf("The Number Is: %d\n", num);
return 0;
}
Y hay también los casos donde una variable necesita ser accesible del programa entero, que puede consistir en varios archivos de fuente. Esto se llama un variable global y debe ser evitada cuando no se requiere.
Esto también es hecha poniendo la definición fuera de todas las funciones, pero sin usar la palabra clave estática:
#include <stdio.h>
int num = 10; /* ser accesible de programa entero! */
int main(void)
{
printf("The Number Is: %d\n", num);
return 0;
}
Hay también la palabra clave extern, que se utiliza para las variables globales que tienen acceso en otros módulos. Hay también algunos calificadores que puedes agregar a las definiciones variables. El más importante de ellas es const. Una variable se define que pues el const no puede ser modificado.
Hay dos más modificantes que son menos de uso general. El modificante volátil y del registro. El modificante volátil requiere a recopilador tener acceso realmente a la variable cada vez que se lee. Puede no optimizar la variable poniéndola en un registro o tan. Esto se utiliza principalmente para multithreading y la interrupción que procesan los propósitos etc.
El modificante del registro solicita a recopilador optimizar la variable en un registro. Esto es solamente posible con variables auto y en muchos casos el recopilador puede mejorar selecto las variables a optimizar en los registros, así que esta palabra clave es anticuada. La única consecuencia directa de hacer un registro variable es que su dirección no puede ser tomada.
La tabla de variables, dada en la página siguiente describe la clase del almacenaje del tipo cinco de clases del almacenaje.
En la tabla vemos que la palabra clave extern está puesta en dos filas. La palabra clave extern se utiliza en funciones para declarar una variable externa estática que se defina a otra parte.
Clase variable del almacenaje |
Definido como |
Alcance |
Clase |
Palabra clave |
Automático |
La palabra clave es opcional |
Temporal |
En una función |
Local |
Estático |
estático |
Temporal |
En una función |
Local |
Registro |
registro |
Temporal |
En una función |
Local |
Externo |
Opcional |
Permanente |
Fuera de una función |
Global (todos los archivos) |
Externo |
Estático |
Permanente |
Fuera de una función |
Global (un archivo) |
|