ASSERT
Section: Manuel du programmeur Linux (3) Updated: 21 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
CONFORMITÉ
BOGUES
VOIR AUSSI
TRADUCTION
NOM
assert - Terminer le programme en cas d'échec d'un test.
SYNOPSIS
#include <assert.h>
void assert (int expression);
DESCRIPTION
Si la macro
NDEBUG
était définie lors de la dernière inclusion de
<assert.h>,
la macro
assert()
ne génère aucun code, et ne fait rien.
Sinon, la macro
assert()
affiche un message d'erreur sur la sortie standard, et termine l'exécution
du programme en cours en appelant
abort()
si
l' expression
est fausse (égale à zéro).
Le but de cette macro est d'aider le programmeur à trouver des bogues dans son
application. Le message "assertion failed un file foo.c, function do_bar(),
line 1287" n'est d'aucune aide pour l'utilisateur final.
VALEUR RENVOYÉE
Aucune valeur n'est renvoyée.
CONFORMITÉ
ISO9899 (ANSI C). Dans le standard 1990
expression
devait être de type
int
et le comportement était indéfini si ce n'était pas le cas, mais depuis le
standard 1999, elle peut être de n'importe quel type scalaire.
BOGUES
assert()
étant implementée comme une macro, si l'expression testée à des effets de
bord, le comportement du programme diffèrera suivant l'existence de
NDEBUG.
Ceci peut induire des Heisenbugs (conformes à la théorie de Heisenberg ;-), qui disparaissent quand
le débugging est utilisé.
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.
|