ASSERT |
Affirmez |
---|---|
Langage C | assert.h |
Syntaxe
void assert(int exp) |
Paramètres
Nom | Description |
---|---|
exp | Ce paramètre permet d'indiquer l'assertion. Ainsi, si la valeur qu'il compare est égale à zéro, c'est-à-dire que l'expression est fausse, un message sera envoyer vers la sortie standard d'erreur et la fonction «abort» sera appelé, terminant ainsi l'exécution du programme. |
Description
Cette macro permet de vérifier le programme. Par conséquent, cette macro est conçu pour capturer les erreurs de programmation ou les anomalies de programmes, elle est généralement désactivée après que le programme termine sa phase de déboguage.
Algorithme
* Entrée : Une condition logique (booléenne) à vérifier * Sortie : Aucune (le programme continue ou termine selon la condition) MODULE ASSERT(condition) SI NDEBUG est défini ALORS * Si NDEBUG est défini, ignorer toutes les assertions RETOURNE sans exécuter aucune vérification FIN SI SI condition est FAUSSE ALORS * Afficher un message d'erreur avec des informations de débogage Afficher ("Assertion échouée : (condition), fichier source [nom_du_fichier], ligne [numéro_de_ligne]") * Terminer immédiatement le programme TERMINER le programme de manière anormale FIN SI * Si la condition est vraie, continuer l'exécution du programme normalement |
Remarques
- ATTENTION ! Cette macro existe essentiellement à des fins de déboguage de programme, on ne devrait pas utiliser cette macro dans un environnement de production, car cela pourrait constituer une faille de sécurité dans certains cas, que les pirates informatiques s'empresseraient d'exploiter.
- Pour désactiver cette macro, vous devrez définir l'instruction suivante «#define NDEBUG 1» avant qu'il lise le fichier d'entête «assert.h».
- Cette macro n'est pas perçu comme un erreur d'exécution (run-time errors) ou une erreur utilisateur (user errors).
Exemple
Voici un exemple montrant une utilisation à la suite d'un test :
Essayer maintenant !
on pourrait obtenir résultat suivant si le fichier est source est situé dans «C:\SOURCE\SAMPLES\C\assertfunction\main.cpp» :
Assertion failed: b==NULL, file C:\SOURCE\SAMPLES\C\assertfunction\main.c, line 11Voir également
Langage de programmation - C++ - Référence procédures et fonctions - assert
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 730.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 31.
Dernière mise à jour : Mardi, le 28 juillet 2015