C · Essencial · Inglês · Técnico
assert
Macro de assert.h que verifica uma condição em tempo de execução e aborta o programa, mostrando arquivo e linha, se ela for falsa. Desaparece quando NDEBUG está definido.
Onde usar
Documenta invariantes e pré-condições durante o desenvolvimento. Em release, com -DNDEBUG, a expressão nem é avaliada, então ela não pode conter um efeito colateral necessário.
Em código
#include <assert.h>
int dividir(int a, int b) {
assert(b != 0); // pré-condição
return a / b;
}Exemplos
Add an assert so we catch a null pointer early.
Coloque um assert para pegar um ponteiro nulo cedo.
The assert disappears in release builds.
O assert some nas builds de release.
Cuidado
Usar assert para validar entrada do usuário ou pôr nele código que precisa executar, como assert(fclose(f) == 0).
Sinônimos
asserção