Domanda

Eventuali duplicati:
Che cosa significa “statica” significa in un programma C?

Che cosa significa la parola chiave static significa in C?

sto usando ANSI-C. Ho visto in molti esempi di codice, usano la parola chiave static di fronte a variabili e di fronte a funzioni. Qual è lo scopo in caso di utilizzo con una variabile? E qual è lo scopo in caso di utilizzo di una funzione?

È stato utile?

Soluzione

Proprio come una breve risposta, ci sono due usi per la parola chiave static quando si definiscono le variabili:

1- Le variabili definite nell'ambito file con static parola chiave, cioè. funzioni esterne definite sarà visibile solo all'interno di quel file. Qualsiasi tentativo di loro l'accesso da altri file si tradurrà in simbolo non risolto in fase di collegamento.

2- variabili definite come static all'interno di un blocco all'interno di una funzione persisterà o "sopravvivere" attraverso diverse invocazioni di uno stesso blocco di codice. Se sono definiti inizializzati, allora essi vengono inizializzati solo una volta. variabili static sono solitamente garantiti per essere inizializzato a 0 per impostazione predefinita.

Altri suggerimenti

static all'interno del corpo di una funzione, cioè utilizzato come classificatore stoccaggio variabile rende tale variabile per trattenerlo di valore tra chiamate di funzione - si può ben dire che una variabile statica all'interno di una funzione è variabile globale visibili solo a tale funzione. Questo uso di static fa sempre la funzione viene utilizzato in discussione non sicuri si dovrebbe evitare.

L'altro caso d'uso utilizza static sulla portata globale, cioè per variabili e funzioni globali: funzioni statiche e variabili globali sono locali all'unità di compilazione, cioè non appaiono nella tabella di esportazione dell'oggetto binario compilato . Essi quindi non inquinano lo spazio dei nomi. Dichiarare statica tutte le funzioni e le variabili globali non essere accessibile dall'esterno dell'unità di compilazione (cioè C file) in questione è una buona idea! Basta essere consapevoli che le variabili statiche non devono essere posizionati nei file di intestazione (tranne i rarissimi casi particolari).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top