ExpertiDict

C · Avançado · Português · Técnico

definição provisória

/de.fi.ni.ˈsɐ̃w̃ pɾo.vi.ˈzɔ.ɾja/substantivo

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

Veja também

Todos os termos de C