Entenda a função assert()
Aprenda como utilizar a função assert() na linguagem C
A função assert()
testa se uma expressão é true (verdadeira).
Ao executar seu programa, se a expressão for verdadeira (true), o assert
se mantém silencioso, quer dizer, ele nada acusa.
Mas se ao executar o programa e a expressão for falsa (false), o assert
gritará interrompendo a execução do programa.
Para utilizarmos o assert em nosso código é preciso utilizar o cabeçalho assert.h.
#include <assert.h>
Exemplo (true)
Este código compilará e executará sem problemas (silenciosamente).
#include <stdio.h>
#include <assert.h>
int main(int argc, char const *argv[])
{
assert(1 == 1);
return 0;
}
Exemplo (false)
Este código compilará mas será interrompido na execução, pois a expressão 1 == 2
é falsa.
#include <stdio.h>
#include <assert.h>
int main(int argc, char const *argv[])
{
assert(1 == 2);
return 0;
}
Desabilitar o assert
É possível desabilitar o assert sem mexer no código, utilizando a diretiva #define NDEBUG
.
Note bem, a diretiva deve ser utilizada antes do #include <assert.h>
, ok?
(obrigado Jonathan Gonzaga pela contribuição ).
O exemplo anterior “false” funcionará corretamente, por tanto, de forma silenciosa, veja:
#include <stdio.h>
#define NDEBUG
#include <assert.h>
int main(int argc, char const *argv[])
{
assert(1 == 2);
return 0;
}
É como se a linha assert(1 == 2);
não estivesse ali, ela é ignorada.
Importante
O assert()
não é para ser utilizado em seus programas reais. A não ser que você tenha outra razão para utilizá-lo.
Nesse curso de lógica, utilizaremos ele com frequência. A razão é porque ele nos ajuda a simular um teste unitário, mas apenas isso, para simular um teste unitário.
Ao laborar o curso, eu procurava o forma mais simples de fazer um teste sem complicar as coisas, essa forma foi através
do assert()
.
Não vá pensar que é para utilizar o assert()
a “torto e direito”, vamos utilizá-lo apenas em quanto ele for útil
para o aprendizado de lógica de programação juntamente com testes unitários.