Che cosa significa statica in ANSI-C [duplicato]
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?
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).