C · Intermediário · Português · Técnico
declaração antecipada
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