Partilhar via


Storage-Class especificadores com declarações de função

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

Específico 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. Isto significa que uma função é visível a partir do seu ponto de declaração em todo o resto da unidade de tradução, mesmo que seja declarada no âmbito local.

END Específico da Microsoft

As regras de visibilidade para funções variam ligeiramente das regras para variáveis, da seguinte forma:

  • Uma função declarada como sendo static é visível apenas dentro do arquivo de origem no qual está definida. Funções no mesmo arquivo de origem podem chamar a função, mas funções static em outros arquivos de origem não podem acessá-lo diretamente pelo nome. Você pode declarar outra static função com o mesmo nome em um arquivo de origem diferente sem conflito.

  • Funções declaradas como extern visíveis em todos os arquivos de origem no programa (a menos que você redeclare posteriormente tal função como static). Qualquer função pode chamar uma extern função.

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

Específico da Microsoft

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

END Específico da Microsoft

Ver também

Classes de armazenamento C