ExpertiDict

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

constexpr

/ˈkɑnst.ɛks.pɚ/palavra-chave

Especificador do C23 para objetos cujo valor é uma constante calculada na compilação, usável em tamanho de array e inicializadores. Em C, vale só para objetos, não para funções.

Onde usar

Substitui o truque do #define para constantes, agora com tipo, escopo e visíveis ao depurador. Difere do constexpr do C++, que também aceita funções.

Em código

constexpr int N = 4;
int tabela[N];  // N é constante de fato
static_assert(N * 2 == 8);

Exemplos

Declare the size as constexpr instead of a #define.

Declare o tamanho como constexpr em vez de um #define.

C's constexpr only applies to objects, unlike C++.

O constexpr do C só vale para objetos, diferente do C++.

Cuidado

Esperar que constexpr funcione em funções como no C++, ou que aceite um valor calculado só em tempo de execução.

Sinônimos

constante em tempo de compilação

Antônimos

#define

Origem

Abreviação de constant expression, expressão constante.

Veja também

Todos os termos de C