ExpertiDict

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

inicializador designado

/i.ni.si.a.li.za.ˈdoɾ de.zig.ˈna.du/substantivo

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

Veja também

Todos os termos de C