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;