ExpertiDict

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

static_assert

/ˈstæ.tɪk əˈsɝt/palavra-chave

Verificação feita em tempo de compilação: static_assert(cond, "msg") falha a compilação se a condição constante for falsa. É palavra-chave no C23 e macro de assert.h no C11.

Onde usar

Garante premissas sobre tamanhos e layout, como sizeof(int) >= 4, no ponto exato onde elas valem. O erro vira falha de build, não bug em produção.

Em código

#include <assert.h>
#include <stdint.h>
static_assert(sizeof(uint32_t) == 4,
  "uint32_t deve ter 4 bytes");

Exemplos

Add a static_assert to guard the struct size.

Adicione um static_assert para proteger o tamanho da struct.

The static_assert fails the build if int is too small.

O static_assert quebra o build se o int for pequeno demais.

Cuidado

Usar com valores conhecidos só em execução: a condição precisa ser uma expressão constante, e para o resto serve assert.

Sinônimos

_Static_assert

Antônimos

assert

Veja também

Todos os termos de C