Latest web development tutorials

Classe di stoccaggio C

variabile di programma definizione C Classe di stoccaggio / insieme di funzioni (visibilità) e ciclo di vita. Questi progettisti posizionati prima di modificare il tipo. Di seguito sono elencati memorizzazione classe C disponibili nel programma:

  • auto
  • registro
  • statica
  • extern

classe di memorizzazione automatica

classe di memorizzazioneautomatica è tutto locale classe variabili di archiviazione predefinito.

{
   int mount;
   auto int month;
}

L'esempio precedente definisce due variabili con la stessa classe di memorizzazione, auto possono essere utilizzate solo all'interno di una funzione, cioè automatica modifica solo la variabile locale.

classe di memorizzazione register

registrare classe di memoria viene utilizzato per definire memorizzati nei registri invece di RAM nelle variabili locali.Ciò significa che la dimensione massima della variabile è uguale alla dimensione del registro (di solito una parola), e non può essere applicata ad esso operatore unario '&' (perché non ha posizione di memoria).

{
   register int  miles;
}

Hai bisogno di registrarsi solo per un rapido accesso a variabili, quali la lotta. Va inoltre osservato che la definizione di 'registro' non significa che variabile sarà memorizzato in un registro, significa che la variabile può essere memorizzato in un registro, a seconda delle limitazioni di hardware e di attuazione.

classe di memorizzazione static

classe di memorizzazionestatic indica al compilatore di mantenere l'esistenza di variabili locali nel ciclo di vita del programma, senza la necessità di inserire ogni volta che si va fuori del campo di applicazione e di essere creato e distrutto.Pertanto, l'uso di variabili locali statiche può essere modificato per mantenere il valore delle variabili locali tra chiamate di funzione.

modificatore statico può essere applicato a variabili globali. Quando la variabile globale statica modificata, la variabile sarà limitare la portata della dichiarazione nei suoi archivi.

Programmazione in C, quando utilizzato su membri di datistatici della classe, tutti gli oggetti si tradurrà in una sola copia della classe membri sono condivisi.

#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);
}

Forse ancora non è possibile comprendere questo esempio, perché ho le funzioni e le variabili globali utilizzati, questi due concetti finora non spiegano. Anche se non comprendere appieno, non importa, i capitoli successivi spiegheremo in dettaglio. Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

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

Classe di stoccaggio extern

classe di memorizzazioneextern viene utilizzata per fornire un riferimento a una variabile globale, la variabile globale per tutti i file di programma sono visibili.Quando si utilizza 'extern', che non può inizializzare una variabile, il nome della variabile punterà ad una posizione di archiviazione definita in precedenza.

Quando si dispone di più documenti e definisce una variabile globale o una funzione che può essere utilizzata in altri documenti, è possibile utilizzareexternin altri file per ottenere un riferimento variabile o una funzione definita. Si puòcapire,extern viene utilizzata per dichiarare una variabile globale o una funzione in un altro file.

modificatore extern viene generalmente utilizzato quando vi sono due o più file condividono le stesse variabili o funzioni del tempo globale, come segue:

Primo file: main.c

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

Il secondo file: support.c

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

Qui, la seconda parola chiave del fileexternviene utilizzato percontarenella prima dichiarazione è stata definita in un file main.c. Ora, compilare entrambi i file, come segue:

 $gcc main.c support.c

Questo produrràa.out programma eseguibile, quando viene eseguito il programma, esso produrrà i seguenti risultati:

5