2012-10-31 11 views

risposta

28

Limiti statici del campo di validità della variabile allo stesso translation unit.
Un statico variabile globale trovi collegamento interno.
A globale non statico variabile ha collegamento esterno.

Buona Lettura:
What is external linkage and internal linkage?

+0

Se un globale non statico ha un collegamento esterno, a cosa serve 'extern'? – rubenvb

+0

@rubenvb: la risposta alla tua Q è spiegata in dettaglio nel collegamento in linea per rispondere. –

+2

@rubenvb 'extern' significa che è una dichiarazione e non una definizione, come il prototipo di una funzione. –

7

Una variabile globale static è disponibile solo in unità traduzione (cioè file di origine) la variabile è in una variabile globale non statico è possibile fare riferimento da altri. file sorgenti.

+3

In particolare: l'uso di 'static' impedisce al linker di esportare il simbolo da quella unità di traduzione. – cdhowie

1

variabili globali non statiche sono accessibili da altri file, mentre le variabili globali statiche non

+1

Ovviamente, sono "accessibili" tramite puntatori. Semplicemente "non possono essere indicati con nomi da ambiti di altre unità di traduzione" (§3.5). – dyp

+1

@DyP Penso che sia ovvio che Rahul voleva dire che la variabile non è accessibile dal suo nome. – Pavel

3

sono Se non si sa quale sia la differenza, risposta corretta sarà probabilmente ancora più confusa a voi. In breve, gli static s di una classe non sono resi noti per la statica nell'ambito del file. Le statistiche di una classe sono essenzialmente identiche alle variabili regolari, ma dovranno essere referenziate anteponendole al nome della classe. Le statistiche sull'ambito del file sono variabili regolari che sono locali solo al file. Per capire cosa significa, prova ad aggiungere due variabili con lo stesso nome in un singolo progetto. Riceverai errori linker perché ci sono più simboli identici. Rendendo statici i simboli eviterete che problemi e il nome della variabile non siano accessibili dall'esterno del file.

Problemi correlati