ExpertiDict

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

tipo opaco

/ˈtʃi.pu oˈpa.ku/substantivo

Tipo declarado no cabeçalho sem mostrar seus campos, normalmente uma struct incompleta usada por ponteiro. Esconde a implementação e permite mudá-la sem recompilar quem usa.

Onde usar

Bibliotecas expõem FILE * ou sqlite3 * sem revelar o layout interno. Quem usa só manipula o ponteiro por funções de criar, usar e destruir.

Em código

// pilha.h
typedef struct pilha Pilha; // opaco
Pilha *pilha_nova(void);
void pilha_push(Pilha *p, int v);
void pilha_libera(Pilha *p);

Exemplos

A API usa um tipo opaco para poder mudar a struct sem quebrar a ABI.

O cliente só enxerga um ponteiro para o tipo opaco.

Cuidado

Tentar declarar variáveis do tipo opaco ou usar sizeof nele: por ser incompleto, só ponteiros são possíveis fora do módulo.

Sinônimos

handle, ponteiro opaco

Veja também

Todos os termos de C