En C todas las variables han de ser declaradas
antes de ser utilizadas. Las variables pueden declararse en tres sitios
diferentes:
Dentro de las funciones (variables locales). | |
Fuera de todas las funciones (variables globales). | |
En la definición de los parámetros de las funciones. |
|
El <tipo> determina el tipo de dato que almacena la variable. En <iden> se declara un identificador que opcionalmente puede ser inicializado al valor de <exp>; se pueden declarar más identificadores separados por comas, pudiendo llevar cada uno su propia inicialización. El = nos sirve para inicializar las variables dentro de la declaración de tipo. Para hacer esto la declaración debe consistir en un tipo de datos, seguido por un nombre de variable, un signo (=) y una constante del tipo apropiado. Al final se debe poner, como de costumbre, un punto y coma (;).Por tanto, la primera vez que nos aparezca dicha variable, si no ha sido asignada posteriormente a su declaración de tipo, tomará el valor que le hemos dado en dicha declaración.
La <clase>
determina la forma de almacenamiento de la variable, que determina su visibilidad
y su existencia. Existen cuatro formas de almacenamiento:
Variables locales: Las variables que se declaran dentro de un bloque de sentencias se denominan variables locales. Estas variables se crean al comienzo del bloque y se destruyen al salir del bloque al que pertenecen. | |
Variables globales: una variable es global cuando se declara fuera de todos los bloques. Las variables globales se conocen a lo largo de todo el programa y se pueden utilizar desde cualquier sitio. Todas las funciones y bloques declarados después de una variable global, podrán acceder a ella. Si dentro de un bloque se repite la declaración de una variable definida en un bloque exterior, el acceso se referirá exclusivamente a la variable dentro del bloque más interno. Es decir, el nombre de un bloque externo es válido a menos que un bloque interno lo vuelva a definir. |
int a=4;
char asterisco='*';
float suma=0.11;
Ejemplo 1:
int a, b,c; | a, b y c son variables enteras. |
float raiz1,raiz2; | raiz1 y raiz2 son variables de coma flotante. |
char indicador; | indicador es una variable de tipo carácter. |
char texto[80]; | texto es un array de tipo carácter de 80 elementos. Fijémonos en los corchetes que me encierran la especificación del tamaño. |
NOTA:
el ejemplo 1
y el ejemplo 2 son
equivalentes.
void incrementa(){
#include <stdio.h>
/*programa simple de varios archivos para escribir "¡Hola!".*/
extern void salida(void);
/*declaración
función externa.*/
extern void salida(void) { /*definición de función externa.*/
Observemos como a salida se le asigna el tipo de almacenamiento extern, pues tiene que ser accedida desde otro archivo distinto de aquel en que es definida; por tanto, ha de ser una función externa. Así se incluye la palabra clave extern tanto en la declaración de la función (primer archivo), como en la definición de función (segundo archivo). Como extern es un tipo de almacenamiento por defecto, podíamos haber prescindido de escribir extern tanto en la declaración como en la definición. |