Nom de la fonction : assert
Fichier d'en-tête : <assert.h>
Prototype de fonction : void assert(int expression);
Fonction : Affirmer si une expression est correcte
Paramètre : expression Si sa valeur est fausse (c'est-à-dire 0), alors il imprime d'abord un message d'erreur sur stderr, puis termine le programme en appelant abort.
Valeur de retour : Aucune valeur de retour
Réapprovisionner :
1. Des appels fréquents affecteront considérablement les performances du programme et augmenteront les frais généraux supplémentaires. Après le débogage, vous pouvez désactiver les appels assert en insérant #define NDEBUG avant l'instruction contenant #include <assert.h>.
2. Vérifiez la légalité des paramètres transmis au début de la fonction.
3. Chaque assertion ne teste qu'une seule condition, car lorsque plusieurs conditions sont testées en même temps, si l'assertion échoue, il est impossible de déterminer intuitivement quelle condition a échoué.
4. Vous ne pouvez pas utiliser d'instructions qui modifient l'environnement, car assert ne prend effet que dans DEBUG. Si vous faites cela, vous rencontrerez des problèmes lorsque le programme ignore l'instruction assert lorsqu'il est réellement en cours d'exécution, tels que :
erreur:
affirmer(i++<100);
En effet, si une erreur se produit, par exemple i=100 avant l'exécution, alors cette instruction ne sera pas exécutée, et la commande i++ ne sera pas exécutée.
correct:
affirmer(i<100);i++;
5. Il doit y avoir une ligne vide entre assert et les instructions suivantes pour créer un sentiment de cohérence logique et visuelle.
6. Dans certains endroits, assert ne peut pas remplacer le filtrage conditionnel. Assert est utilisé pour éviter les erreurs évidentes, pas pour gérer les exceptions. Les erreurs et les exceptions sont différentes. Les erreurs ne devraient pas se produire et les exceptions sont inévitables. Les exceptions du langage C peuvent être gérées par jugement conditionnel, et d'autres langages ont leurs propres mécanismes de gestion des exceptions. Une règle très simple pour utiliser assert est de l'utiliser au début d'une méthode ou d'une fonction. Si vous l'utilisez au milieu d'une méthode, vous devez soigneusement déterminer si elle est appropriée. Un processus fonctionnel n'a pas démarré au début du procédé, et les problèmes qui surviennent lors de l'exécution d'un processus fonctionnel sont presque tous des exceptions.
Exemple de programme : Affirmer la variable a<80 et afficher le résultat
#include<assert.h>#include<stdio.h>intmain(void){inta=50;assert(a<80);//Assert a<80, s'il vaut 0, affiche un message d'erreur et termine le programme , sinon continuez à exécuter printf (Assertaistruen);return(0);}
Résultats en cours d'exécution :
Affirmer la vérité