Section courante

A propos

Section administrative du site

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

Exemple

Voici un exemple montrant une utilisation à la suite d'un test :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <assert.h>
  4.  
  5. int main()
  6. {
  7.     int a = 10;
  8.     int * b = NULL;
  9.     b = &a;
  10.  
  11.     assert(b==NULL);
  12.     printf("%i\n",b);
  13.     return 0;
  14. }

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 11

Voir é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