ExpertiDict

C · Intermediário · Português · Técnico

declaração antecipada

/de.kla.ɾa.ˈsɐ̃w̃ ɐ̃.te.si.ˈpa.dɐ/substantivo

Declaração que apresenta o nome de uma struct ou função antes da definição completa, como struct no;. Permite ponteiros para tipos incompletos e quebra dependências circulares entre headers.

Onde usar

Em headers que se referenciam, declara-se struct b; em vez de incluir o outro arquivo, e usa-se struct b *. Isso evita include circular e reduz o tempo de compilação.

Em código

struct no;                 /* incompleto */
struct lista { struct no *cabeca; };
struct no { int v; struct no *prox; };

Exemplos

Faz uma declaração antecipada da struct para não incluir o outro header.

Não compila porque a struct ainda é um tipo incompleto aqui.

Cuidado

Usar o tipo incompleto por valor ou acessar seus campos; só ponteiros são permitidos até a definição aparecer.

Sinônimos

forward declaration

Antônimos

definição completa

Veja também

Todos os termos de C