Sdílet prostřednictvím


Použití k určení propojení extern

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

Poznámky

extern Klíčové slovo deklaruje proměnnou nebo funkci a určuje má externí navázání (jeho název je viditelná ze souborů, než ve kterém je definován).Při úpravách proměnné, extern Určuje, že proměnná má statické trvání (alokovaný při program začíná a platný při ukončení programu).Proměnné nebo funkce mohou být definovány v jiném zdrojovém souboru nebo později ve stejném souboru.Prohlášení o proměnné a funkce v rozsahu souboru jsou externí ve výchozím nastavení.

Příklad

// 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;
}

V jazyce C++, při použití s řetězci extern určuje úmluv navázání jiného jazyka jsou používány pro declarator(s).C funkce a data lze přistupovat pouze v případě, že jsou již deklarován jako c navázání.Však tyto musí být definována v jednotce nezávisle sestavené překlad.

Microsoft C++ podporuje řetězce "C" a "C++" v řetězcový literál pole.Všechny standardní zahrnují použití souborů extern syntaxe "C" Povolit funkce knihovna run-time pro použití v C++ programy.

Následující příklad ukazuje alternativní způsoby deklarovat c navázání v názvech:

// 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;

Viz také

Referenční dokumentace

Klíčových slov jazyka C++

Specifikace propojení

externí úložiště tříd:

Koncepty

Chování identifikátory

Navázání