Qu’il s’agisse du langage de programmation C ou d’un autre, il arrive très souvent que l’utilisateur veuille vérifier la véracité d’une condition. Pour cela, il devra recourir à une fonction capable de traiter cette information et de renvoyer un résultat compréhensible et intelligible. Dans le cas du langage C, la fonction qui permet de faire cela est assert. Elle prend en argument une condition et vérifie si cette dernière est vraie ou fausse puis retourne, selon le cas, une erreur. Dans ce guide, vous découvrirez plus de détails sur assert.
Focus sur la définition d’une assertion
Avant de présenter la fonction assert du langage C qui permet de vérifier une assertion, il est important d’éclairer ceux qui ne s’y connaissent pas sur la définition du mot assertion. Selon la définition du dictionnaire universel francophone, une assertion est une proposition que l’on avance ou définie comme vraie. Il faut noter que cette proposition peut être soit négative, soit affirmative et qu’il n’est parfois pas possible de la vérifier. Une fois que cette définition est acceptée, nous pouvons présenter la fonction assert qui permet de faire des assertions avec le langage de programmation C.
Présentation de la fonction assert
Le mot-clé assert permet de vérifier l’exactitude d’une expression en langage C. Grâce à cette fonction, vous pouvez tester aisément l’état d’une variable ou d’une zone de mémoire. En appliquant l’assertion assert, vous pouvez vérifier la cohérence d’une valeur.
Cette fonction permet de savoir si oui ou non, le résultat que vous espérez est convenable à celui proposé par le programme. Lorsque la fonction assert est bien utilisée, le programme continue de s’exécuter normalement jusqu’à donner le résultat.
Dans le cas contraire, un message d’erreur s’affiche et l’exécution de l’instruction est systématiquement interrompue. Pour utiliser cette macro du langage C, il suffit de faire appel à la fonction assert. Vous devez lui passer ensuite en argument un paramètre. Par ailleurs, cette fonction n’est pas très recommandée, car elle peut causer des problèmes de sécurité et de performance souvent.
Quels sont les paramètres pris par la fonction ?
En vérité, la fonction assert prend seule condition en argument pour déclencher l’assertion ou non. Toutefois, il est important de noter que la fonction ne prend pas de valeur nulle. Si la valeur entrée en argument est vraie, alors l’assertion que vous avez entrée ne sera pas déclenché.
Par contre, si la valeur entrée est fausse, l’assertion pourra être déclenchée, ce qui fait que le programme s’arrête et affiche un message d’erreur. Voici quelques instructions que vous pouvez entrer pour vérifier des choses avec la fonction assert :
- assert (ptr !=NULL) : pour vérifier si un pointeur à utiliser est valide ;
- assert (index < array_size) : lorsque vous avez un tableau, l’instruction permet de savoir si ce dernier est de taille suffisante pour que vous puissiez y accéder dans le but de faire des opérations ;
- assert(x>0) : cette instruction demande à C de vérifier si le nombre x est posif ou non ;
- assert(state == READY » : avec cette fonction, vous pouvez savoir l’état des variables avant de procéder à l’éxécution.
Dans quel cas faut-il utiliser assert ?
Comme précisé précédemment, assert est utilisé essentiellement pour vérifier des préconditions et des postconditions. En aucun cas, elle ne retourne de valeur numérique. Rien ne se passe lorsque la condition à vérifier est juste, alors qu’un message d’erreur s’affiche le cas échéant. Il est recommandé d’utiliser cette fonction pour vérifier les propriétés invariantes d’un système.
Par exemple, lorsque vous devez établir qu’une condition soit vraie avant qu’un système ne marche correctement, cette fonction peut être utilisée. Elle sert également à vérifier les erreurs de programmation. Lorsque vous envisagez de créer un programme, il est préférable d’utiliser la fonction assert uniquement pendant les phases de test.