ExpertiDict

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

literal composto

/li.teˈɾaw kõˈpos.tu/substantivo

Expressão do C99 que cria um objeto sem nome a partir de um tipo e uma lista de valores, como (struct ponto){1, 2}. Em escopo de bloco, vive até o fim do bloco.

Onde usar

Útil para passar uma struct pequena a uma função sem declarar uma variável auxiliar. Também permite criar arrays temporários, como (int[]){1, 2, 3}.

Em código

struct ponto { int x, y; };
void desenha(struct ponto p);
// ...
desenha((struct ponto){.x = 3, .y = 4});

Exemplos

Passei um literal composto em vez de criar uma variável só para a chamada.

Esse literal composto vive só até o fim do bloco.

Cuidado

Devolver o endereço de um literal composto de dentro de uma função, porque o objeto deixa de existir no return.

Sinônimos

compound literal

Veja também

Todos os termos de C