C · Intermediário · Português · Técnico
inicializador designado
Sintaxe do C99 para inicializar membros de struct ou posições de array pelo nome ou índice, como .x = 1 ou [3] = 9. Membros omitidos ficam zerados.
Onde usar
Deixa structs de configuração legíveis e robustas a mudanças na ordem dos campos. É muito usado em tabelas e em APIs que recebem uma struct de opções.
Em código
struct ponto { int x, y, z; };
struct ponto p = { .z = 3, .x = 1 };
int mapa[5] = { [2] = 7, [4] = 9 };Exemplos
Inicializa a struct com inicializadores designados para ficar legível.
Os campos que não aparecem no inicializador designado ficam zerados.
Cuidado
Achar que funciona igual em C++: o C++20 só aceita na ordem de declaração, enquanto em C a ordem é livre.
Sinônimos
designated initializer