Condividi tramite


Utilizzando esterno per specificare collegamento

extern string-literal { declaration-list }
extern string-literal declaration

Note

extern la parola chiave dichiara una variabile o una funzione e specifica che ha collegamento esterno (il nome è visibile da file diverso da quello in cui è definito).Quando si gestisce una variabile, extern specifica che la variabile abbia durata statica (viene allocata quando il programma viene avviato e ha rilasciato alla fine del programma).La variabile o la funzione può essere definita in un altro file di origine, o versioni successive nello stesso file.Le dichiarazioni di variabili e funzioni in ambito file sono esterne per impostazione predefinita.

Esempio

// specifying_linkage1.cpp
int i = 1;
void other();

int main() {
   // Reference to i, defined above:
   extern int i;
}

void other() {
   // Address of global i assigned to pointer variable:
   static int *external_i = &i;

   // i will be redefined; global i no longer visible:
   // int i = 16;
}

In C++, se utilizzato con una stringa, extern specifica che le convenzioni di associazione di un altro linguaggio utilizzati per i dichiaratori.Le funzioni e i dati di C# può essere eseguito solo se in precedenza sono dichiarate come dotata di collegamento c.Tuttavia, devono essere definiti in un'unità di conversione separatamente compilata.

Microsoft C++ supporta le stringhe “C„ e “C++„ in valore letterale stringa campo.Tutti i file di inclusione standard utilizzano extern La sintassi “c„ per consentire la libreria di runtime viene eseguito per essere utilizzata nei programmi C++.

Le alternative di seguito viene illustrato dichiarare i nomi con collegamento c:

// specifying_linkage2.cpp
// compile with: /c
// Declare printf with C linkage.
extern "C" int printf( const char *fmt, ... );

//  Cause everything in the specified header files
//   to have C linkage.
extern "C" {
   // add your #include statements here
   #include <stdio.h>
}

//  Declare the two functions ShowChar and GetChar
//   with C linkage.
extern "C" {
   char ShowChar( char ch );
   char GetChar( void );
}

//  Define the two functions ShowChar and GetChar
//   with C linkage.
extern "C" char ShowChar( char ch ) {
   putchar( ch );
   return ch;
}

extern "C" char GetChar( void ) {
   char ch;

   ch = getchar();
   return ch;
}

// Declare a global variable, errno, with C linkage.
extern "C" int errno;

Vedere anche

Riferimenti

Parole chiave C++

Specifiche di collegamento

identificatore esterno della classe di archiviazione

Concetti

Comportamento degli identificatori

Collegamento