Latest web development tutorials

clase C de almacenamiento

repertorio de funciones de clase de almacenamiento variable de programa de definición de C / (visibilidad) y el ciclo de la vida. Estos especificadores colocan antes de que modifican el tipo. A continuación se enumeran clase C de almacenamiento disponible en el programa:

  • auto
  • registrar
  • estático
  • externo

clase de almacenamiento automático

clase de almacenamientoautomático es toda clase de variables de almacenamiento predeterminado local.

{
   int mount;
   auto int month;
}

El ejemplo anterior define dos variables con el mismo tipo de almacenamiento, auto sólo se pueden utilizar dentro de una función, a saber automático sólo modifica la variable local.

regístrese clase de almacenamiento

regístrese clase de almacenamiento se utiliza para definir almacenados en los registros en lugar de la memoria RAM en las variables locales.Esto significa que el tamaño máximo de la variable es igual al tamaño del registro (por lo general una palabra), y no puede ser aplicada a ella unario '&' operador (ya que no tiene posición de memoria).

{
   register int  miles;
}

Sólo hay que registrarse para acceder rápidamente a las variables, tales como contador. También hay que señalar que la definición de "registro" no significa que la variable se almacena en un registro, significa que la variable puede ser almacenada en un registro, en función de las limitaciones de hardware y la ejecución.

clase de almacenamiento estático

clase de almacenamientoestático indica al compilador para mantener la existencia de variables locales en el ciclo de vida del programa, sin necesidad de introducirla cada vez que vaya fuera de alcance y pueden crear y destruir.Por lo tanto, el uso de variables locales estáticas puede ser modificado para mantener el valor de las variables locales entre llamadas a funciones.

modificador static se puede aplicar a las variables globales. Cuando la variable global estática modificado, la variable limitar el alcance de la declaración en sus archivos.

Programación en C, cuando se utiliza en los miembros de datosestáticos de la clase, todos los objetos se traducirá en un solo ejemplar de la clase miembros son compartidos.

#include <stdio.h>
 
/* 函数声明 */
void func(void);
 
static int count = 5; /* 全局变量 */
 
main()
{
   while(count--)
   {
      func();
   }
   return 0;
}
/* 函数定义 */
void func( void )
{
   static int i = 5; /* 局部静态变量 */
   i++;

   printf("i is %d and count is %d\n", i, count);
}

Tal vez usted todavía no puede comprender este caso, porque he utilizado las funciones y variables globales, estos dos conceptos hasta ahora no se explican. Incluso si usted no entiende por completo, no importa, los capítulos siguientes vamos a explicar en detalle. Cuando el código se compila y ejecuta, produce los siguientes resultados:

i is 6 and count is 4
i is 7 and count is 3
i is 8 and count is 2
i is 9 and count is 1
i is 10 and count is 0

clase de almacenamiento extern

clase de almacenamientoexterno se utiliza para proporcionar una referencia a una variable global, la variable global para todos los archivos de programa son visibles.Cuando se utiliza 'extern', que no puede inicializar una variable, el nombre de la variable se apuntan a una ubicación de almacenamiento previamente definido.

Cuando tiene varios documentos y definir una variable global o la función que se puede utilizar en otros documentos, puede utilizarexternen otros archivos para obtener una referencia variable o función definida. Se puedeentender,extern se utiliza para declarar una variable global o la función en otro archivo.

modificador externo se utiliza generalmente cuando hay dos o más archivos comparten las mismas variables o funciones del tiempo globales, de la siguiente manera:

Primer archivo: main.c

#include <stdio.h>
 
int count ;
extern void write_extern();
 
main()
{
   count = 5;
   write_extern();
}

El segundo archivo: support.c

#include <stdio.h>
 
extern int count;
 
void write_extern(void)
{
   printf("count is %d\n", count);
}

En este caso, la segunda palabra clave del archivoexternose utiliza paracontaren la primera declaración ha sido definido en un archivo main.c. Ahora, compile ambos archivos, de la siguiente manera:

 $gcc main.c support.c

Esto producirá programa ejecutablea.out, cuando se ejecuta el programa, se producen los siguientes resultados:

5