Partilhar via


Especificadores de classe de armazenamento com declarações de função

É possível usar o especificador static ou o especificador de classe de armazenamento extern em declarações de função. As funções sempre têm tempos de vida globais.

Seção específica da Microsoft

As declarações de função no nível interno têm o mesmo significado que as declarações de função no nível externo. Isso significa que uma função é visível do ponto de declaração durante o restante da unidade de conversão mesmo que seja declarada no escopo local.

Fim da seção específica da Microsoft

As regras de visibilidade para funções variam ligeiramente das regras para as variáveis, como segue:

  • Uma função declarada como static é visível apenas no arquivo de origem em que é definida. As funções no mesmo arquivo de origem podem chamar a função static, mas as funções em outros arquivos de origem não podem acessá-la diretamente pelo nome. É possível declarar outra função static com o mesmo nome em outro arquivo de origem sem conflito.

  • As funções declaradas como extern são visíveis em todos os arquivos de origem do programa (a menos que sejam redeclaradas posteriormente como static). Qualquer função pode chamar uma função extern.

  • As declarações de função que omitem o especificador de classe de armazenamento são extern por padrão.

Seção específica da Microsoft

A Microsoft permite a redefinição de um identificador extern como static.

Fim da seção específica da Microsoft

Confira também

Classes de armazenamento C