A palavra-chave static
está sobrecarregada com vários significados e qual significado se aplica depende de onde ela aparece. Ela afeta tanto a duração de armazenamento (tempo de vida) de um objeto quanto a ligação do identificador associado a um objeto de função declarado no escopo do arquivo.
Consulte "6.2.2 Ligações de Identificadores" e "6.2.4 Duração de Armazenamento de Objetos" no esboço online do Padrão C11 para detalhes.
Observe que a palavra-chave static
afeta apenas a vinculação para identificadores de função e objeto declarados no escopo do arquivo (fora do corpo de qualquer função) - identificadores declarados dentro de uma função ou bloco (e sem a palavra extern
) não têm vinculação .