C · Avançado · Português · Técnico
definição provisória
Declaração de variável global sem inicializador e sem extern, como int x; no escopo do arquivo. Pode repetir no mesmo arquivo e vira uma definição zerada se nenhuma outra aparecer.
Onde usar
Explica por que int x; em dois .c funcionava com gcc antigo, que usava -fcommon. Desde o GCC 10 o padrão é -fno-common, e o linker acusa definição múltipla.
Em código
int x; /* definição provisória */
int x; /* ok no mesmo arquivo */
int x = 5; /* definição de fato */Exemplos
Isso é uma definição provisória, e o compilador junta as duplicatas do mesmo arquivo.
Depois do GCC 10 o link quebra por causa do -fno-common.
Cuidado
Pôr int x; em um header incluído por vários .c: com -fno-common o linker reclama de multiple definition.
Sinônimos
tentative definition