Compartilhar via


Especificadores de classe de armazenamento estático

Os especificadores de estática de classe de armazenamento, estático e extern, podem ser aplicados a objetos e funções.A tabela a seguir mostra onde as palavras-chave estático e extern pode e não pode ser usado.

Uso de estática e extern

Construct

Pode estático

ser usado?

Pode extern

ser usado?

Declarações de função dentro de um bloco

Não

Sim

Argumentos formais para uma função

Não

Não

Objetos em um bloco

Sim

Sim

Objetos fora de um bloco

Sim

Sim

Funções

Sim

Sim

Funções de membro de classe

Sim

Não

Dados de membro de classe

Sim

Não

typedefnomes

Não

Não

Um nome especificado usando o estático palavra-chave tem ligação interna, exceto para os membros estáticos de uma classe que tenha ligação externa.Ou seja, não é visível fora da unidade de conversão atual.Um nome especificado usando o extern palavra-chave tem ligação externa, a menos que definido anteriormente como tendo ligação interna.Para obter mais informações sobre a visibilidade dos nomes, consulte escopo e programa e ligação.

ObservaçãoObservação

Funções que são declaradas como in-line e que não são funções de membro de classe são dadas as mesmas características de ligação, como funções declaradas como estático.

Um nome de classe cuja declaração não foi encontrada pelo compilador pode ser usado em um extern declaração.O nome apresentado com tal declaração não pode ser usado até que a declaração da classe foi encontrada.

Consulte também

Referência

Especificadores de classe de armazenamento