Man page - assert(3)

Packages contains this manual

Available languages:

en fr pt_BR es pl ja ru ro de

Manual

assert

NOME
BIBLIOTECA
SINOPSE
DESCRIÇÃO
VALOR DE RETORNO
ATRIBUTOS
PADRÕES
HISTÓRICO
BUGS
VEJA TAMBÉM
TRADUÇÃO

NOME

assert - aborta a execução do programa se a assertiva for falsa

BIBLIOTECA

Biblioteca C Padrão ( libc , -lc )

SINOPSE

#include <assert.h>

void assert(scalar expressão );

DESCRIÇÃO

Essa macro pode ajudar os programadores a encontrar erros em seus programas ou a lidar com casos excepcionais através de uma falha que produzirá uma saída de depuração limitada.

Se expressão for falsa (isto é, compara igual a zero), assert () imprime uma mensagem de erro na saída de erro padrão e encerra o programa chamando abort (3). A mensagem de erro inclui o nome do arquivo e a função que contém a chamada de assert (), o número da linha do código-fonte da chamada e o texto do argumento; algo como:

prog: algum_arquivo.c:16: algum_arquivo: Assertiva `val == 0' falhou.

Se a macro NDEBUG for definida no momento em que <assert.h> foi incluído pela última vez, a macro assert () gera nenhum código e, portanto, não faz absolutamente nada. Não é recomendável definir NDEBUG se usar assert () para detectar condições de erro, pois o software pode se comportar de forma não determinística.

VALOR DE RETORNO

Nenhum valor é retornado.

ATRIBUTOS

Para uma explicação dos termos usados nesta seção, consulte attributes (7).

Image grohtml-3937013-1.png

PADRÕES

C11, POSIX.1-2008.

HISTÓRICO

C89, C99, POSIX.1-2001.

Em C89, expressão precisa ser do tipo int e um resultado indefinido se ela não for, mas em C99 ela deve ser do tipo escalar.

BUGS

assert () é implementada como uma macro. Se a expressão avaliada gerar erro, o comportamento do programa dependerá de se NDEBUG estiver definida ou não. Podem surgir "heisenbugs", que desaparecem quando a depuração estiver ativada.

VEJA TAMBÉM

abort (3), assert_perror (3), exit (3)

TRADUÇÃO

A tradução para português brasileiro desta página man foi criada por Paulo César Mendes <drpc@ism.com.br>, André Luiz Fassone <lonely_wolf@ig.com.br> e Rafael Fontenelle <rafaelff@gnome.org>.

Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita.

Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para a lista de discussão de tradutores .