Autor usa união para associar informação de tipo em estruturas genéricas sem custo de memória em tempo de execução.
Apresenta quatro níveis de generics em C: headers com macros (nível 0), void* (nível 1), armazenamento inline com flexible array (nível 2) e verificação de tipo com union e typeof (nível 3).
No nível 0, cada tipo exige inclusão repetida de headers, binários maiores e funções prefixadas por tipo.
O nível 1 usa void*, não é tipo-seguro e resulta em duas alocações por nodo.
O nível 2 otimiza com flexible array members, alocação única e elimina cópias desnecessárias.
O nível 3 aplica checagem de tipo em tempo de compilação usando union e typeof, impedindo inserção de tipos incorretos.
Uso de typedef contorna erro de incompatibilidade de tipos estruturalmente idênticos em compiladores mais antigos.
A técnica pode ser adaptada a outras estruturas, como mapas genéricos com múltiplos parâmetros de tipo.
Get notified when new stories are published for "🇵🇹 Hacker News Português"