Traduzioni di questa pagina?:

extern

Nella dichiarazione di varibili la parola extern è usata per indicare al compilatore che un riferimento ad una variabile è da ricercare al di fuori dello scope corrente. Le variabili dichiarate con extern non ricevono un'allocazione, ma per esse vengono generati riferimenti che dovranno essere risolti in fase di linking con il codice oggetto dove vengono effettivamente allocate e inizializzate.

Un uso tipico di extern è quello di fare in modo che una variabile sia accessibile da più funzioni il cui codice è in diversi file.

Applicato alla dichiarazione di funzioni la parola extern unita ai literal “C” o “C++” indica al compilatore di cambiare il name mangling nella generazione dei riferimenti simbolici del codice oggetto. Questo è necessario quando si vuole linkare il proprio codice C++ ad una libreria scritta e compilata in C e viceversa:

extern "C" int plain_c_func(int param);

la funzione plain_c_func il cui codice oggetto è stato creato con un compilatore C può così essere invocata dal nostro codice C++

Si veda: extern "LANG" Linkage issues