C · Avançado · Inglês · Técnico
constexpr
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.