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