C Programmazione

Statico nella programmazione in C

Statico nella programmazione in C
In questo tutorial, spiegheremo la parola chiave static applicandola a variabili e funzioni. Static è una parola chiave utilizzata nella programmazione C e può essere applicata utilizzando la seguente sintassi:

statico tipo di dati nome variabile

Variabili locali statiche

Quando una variabile in una funzione è statica, la variabile conserva il suo valore tra le chiamate di funzione.

//Esempio 1.c
#includere
int fun1()

int conteggio=0;
contare++;
conteggio dei resi;

int fun2()

statico int conteggio=0;
contare++;
conteggio dei resi;

intero principale()

printf("fun1 la prima chiamata restituisce: %d\n",fun1());
printf("fun1 2a chiamata restituisce: %d\n\n",fun1());
printf("fun2 la prima chiamata restituisce: %d\n",fun2());
printf("fun2 2a chiamata restituisce: %d\n",fun2());
restituisce 0;


Nell'esempio 1.c, abbiamo due funzioni: divertimento1() e divertimento2(). Nel divertimento1(), dichiariamo una variabile (count) e la inizializziamo a 0. Quindi, incrementiamo la variabile count e restituiamo il valore risultante. Usando principale(), Noi chiamiamo divertimento1() due volte, e ogni volta, viene restituito il valore 1 perché la variabile count viene azzerata quando la chiamata a divertimento1() è completato. Nel divertimento2() abbiamo dichiarato la variabile count come variabile statica. Pertanto, il suo valore è preservato. Usando principale(), Noi chiamiamo divertimento2() due volte: la prima volta viene restituito il valore 1 e la seconda volta viene restituito il valore 2.

Variabili globali statiche

Una variabile globale statica si comporta allo stesso modo delle altre variabili globali, ma non è possibile accedervi da un altro programma C.

Funzioni statiche

In C, le funzioni sono globali per impostazione predefinita. Tuttavia, se dichiariamo una funzione statica, allora la funzione è locale e non è possibile accedervi da un altro programma C.

Inizializzazione di variabili statiche

Se una variabile statica non viene inizializzata in modo esplicito, viene inizializzata come 0.

//Esempio2.c
#includere
intero principale()

statico int i;
printf("Valore di i: %d\n",i);
restituisce 0;


Nell'esempio2.c, abbiamo dichiarato una variabile statica i che non è inizializzata. Tuttavia, poiché la variabile è statica, viene automaticamente inizializzata a 0.

È importante notare che una variabile statica deve essere inizializzata da un letterale costante; non possiamo usare il valore di ritorno di una funzione per inizializzare una variabile statica.

//Esempio3.c
#includere
int fun1()

ritorno 5;

intero principale()

statico int i = fun1();
printf("Valore di i: %d\n",i);
restituisce 0;


Nell'esempio 3.c, proviamo a inizializzare una variabile statica utilizzando il valore restituito di divertimento1(). Tuttavia, come puoi vedere, viene restituito un errore quando il codice viene compilato.

Sommario

La durata di una variabile statica e la durata del programma sono uguali.

Se una variabile statica non è inizializzata, assumerà un valore predefinito di 0.

Né una variabile statica globale né una funzione statica sono accessibili da un programma diverso da quello in cui è stata definita.

Aggiungi i gesti del mouse a Windows 10 utilizzando questi strumenti gratuiti
Negli ultimi anni computer e sistemi operativi si sono notevolmente evoluti greatly. C'è stato un tempo in cui gli utenti dovevano usare i comandi per...
Controlla e gestisci il movimento del mouse tra più monitor in Windows 10
Gestore mouse con doppio display ti consente di controllare e configurare il movimento del mouse tra più monitor, rallentando i suoi movimenti vicino ...
WinMouse ti consente di personalizzare e migliorare il movimento del puntatore del mouse su PC Windows
Se vuoi migliorare le funzioni predefinite del puntatore del mouse, usa freeware WinMouse. Aggiunge più funzionalità per aiutarti a ottenere il massim...