A palavra-chave extern é usado para declarar identificadores de variáveis como identificadores da classe de armazenamento estática (estático) com tempo de vida global. Estas variáveis existem a partir do inicio do programa e a memória para elas é alocada e inicializada imediatamente após o inicio do programa.
Você pode criar programas que consistem de múltiplos arquivos fontes; neste caso a diretiva para o preprocessador #include é usada. Variáveis declaradas como extern com o mesmo tipo e identificador podem existir em arquivos fontes diferentes de um projeto.
Ao compilar o projeto inteiro, todas as variáveis extern com o mesmo tipo e identificador são associados com uma parte da memória do conjunto (pool) de variáveis globais. Variáveis extern são úteis para compilação separada de arquivos fontes. Variáveis externas podem ser inicializadas, mas apenas uma vez - a existência de várias variáveis externas inicializadas do mesmo tipo e com o mesmo identificador é proibida.