Clases de almacenamiento en C

Clases de almacenamiento en C
Las clases de almacenamiento son un tema muy importante en c. Si hemos desarrollado nuestro concepto en C, especialmente sobre la vida y el alcance de cualquier variable, debemos saber sobre las clases de almacenamiento en C. En arquitectura basada en DOS o arquitectura de 16 bits como Turbo C ++ 3. 0, toma la memoria de 2 bytes. Pero en una arquitectura de 32 o 64 bits como Dev C ++, los bloques de código e enteros toman la memoria de 4 bytes.

Tres propiedades de las variables

  1. Nombre de la variable.
  2. Tamaño del bloque de memoria.
  3. Tipo de contenido.

Otras propiedades de la variable

Valor predeterminado, alcance, vida, almacenamiento.

Valor por defecto: Si no inicializamos ningún valor a una variable en el momento de la declaración de la variable, ¿cuál es el valor de la variable x? Entonces el valor de x se llama valor predeterminado, que es otra característica de la variable.

Almacenamiento: El almacenamiento significa donde se asigna la memoria para una variable, ya sea RAM o en el registro de CPU.

Alcance: Las limitaciones o áreas donde podemos acceder a una variable

Vida: El lapso entre crear y destruir una variable se llama vida. Estas 4 propiedades podemos darnos cuenta al momento de declarar una variable.

Hay 4 tipos de clases de almacenamiento en la declaración de declaración.

  1. Automático
  2. Registro
  3. Estático
  4. Externo
Clase de almacenamiento Palabra clave Valor por defecto Almacenamiento Alcance Vida
1. Automático auto Basura RAM Limitado a los bloques donde se declara Hasta la ejecución del bloque en el que se declara
2. Registro registro Basura registro mismo mismo
3. Estático estático 0 (cero) RAM Mismo Hasta el final del programa
4. Externo externo 0 (cero) RAM Global mismo

Programa de clase de almacenamiento automático

Programación Ejemplo1

#incluir
int main ()

// Variable automática de forma predeterminada;
int x = 5;
printf ("%d \ n", x);

int x = 2;
printf ("%d \ n", x);

printf ("%d \ n", x);
regresar 0;

Producción

Explicación

Con el símbolo de flecha, podemos escribir una palabra clave automática para hacer la variable automática. Si no escribimos nada allí, la variable es un tipo automático (de forma predeterminada). La regla es dar mayor prioridad a la variable local si el nombre de dos variables dentro de la función es la misma.

Programa de clase de almacenamiento de registro

Programación Ejemplo 2

#incluir
int main ()

// Se utiliza la palabra clave de registro;
registrar int x = 4;
int y;
y = x ++;
X--;
y = x+5;
printf (" %d %d", x, y);
regresar 0;

Producción

Explicación

Si en un programa, algunas variables se usan repetidamente, en ese caso, almacenamos la variable x dentro de un registro de CPU en lugar de RAM. Reduce el tiempo de procesamiento de nuestro programa, pero es aplicable solo int y Char significa Memoria Pequeña Negro. Si el registro no está disponible, convierte automáticamente la clase de almacenamiento de registro en una clase automática.

Programa de clase de almacenamiento estático

Programación Ejemplo 3

#incluir
vacío F1 ();
int main ()

f1 ();
f1 ();
regresar 0;

vacío F1 ()

int i = 0;
i ++;
printf ("i =%d \ n", i);

Producción

Explicación

Aquí obtenemos el resultado dos 1 porque declaramos la variable de forma predeterminada automáticamente.

Programación Ejemplo 4

#incluir
vacío F1 ();
int main ()

f1 ();
f1 ();
regresar 0;

vacío F1 ()

// se declara la variable estática;
static int i = 0;
i ++;
printf ("i =%d \ n", i);

Producción

Explicación

Como es una variable estática, esta variable no se destruye del cuerpo de F1. Entonces, cuando F1 () se llama segunda vez, la salida será 2.

Clase de almacenamiento externo

Programación Ejemplo 5

#incluir
int x;
int main ()

// se declara extern;
externo int x;
printf ("x =%d", x);
vacío F1 (nulo);
f1 ();
printf ("x =%d", x);
regresar 0;

vacío F1 ()

x ++;
printf ("x =%d", x);

Producción

Explicación

Como es una variable global, se puede acceder a la variable desde cualquier lugar del programa y su vida es a lo largo del programa.1st printf () función imprima el valor de x = 0, ya que es valor predeterminado = 0, entonces f1 () está llamando, entonces x se incrementa a 1 e imprime el valor 1. Luego, el control nuevamente va a la función main () después de f1 () e imprime el valor de x nuevamente 1.

Programación Ejemplo 6

#incluir
int x;
vacío F1 ();
int main ()

externo int x;
printf ("x =%d \ n", x);
f1 ();
printf ("x =%d \ n", x);
regresar 0;

vacío F1 ()

int x = 5;
x ++;
printf ("x =%d \ n", x);

Producción

Explicación

Como la variable x en la función f1 () es una variable automática, solo es accesible en el f1 ().Entonces, aquí la función printf () imprima el valor de x = 5 pero en la función main (), x a se trata como variable externa, porque x se declara como global. Entonces, imprime el valor de x = 0.

¿Dónde declaramos la palabra clave externa??

Se declara una variable externa fuera de cualquier función. Pero se denota que la variable es externas dentro de la función principal como se muestra en este ejemplo, o se denota en cualquier parte del programa.

Conclusión

Desde el concepto mencionado anteriormente de las clases de almacenamiento de idiomas C, es claro para el lector que cada vez que administramos los datos a través del software, necesitamos una variable o espacio de almacenamiento para almacenar los datos. Ahora tenemos una idea clara de este artículo sobre cómo se almacenarán los datos en una variable.