Sobes.tech
Junior — Middle

Como é que o uso da palavra-chave static afeta as propriedades das variáveis globais num programa?

sobes.tech IA

Resposta da IA

A palavra-chave static ao declarar uma variável global em C/C++ limita o âmbito dessa variável ao arquivo atual (unidade de tradução). Isso significa que essa variável não será visível nem acessível de outros arquivos, mesmo que eles incluam esse arquivo através de extern.

Assim, static torna uma variável global interna ao arquivo, prevenindo conflitos de nomes e garantindo encapsulamento ao nível do arquivo.

Exemplo:

// file1.c
static int counter = 0; // visível apenas em file1.c

void increment() {
    counter++;
}

// file2.c
extern int counter; // Erro: counter não é visível devido a static