assert [Forums - Langage C]
assert [Forums - Langage C]
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
Recherche
 
   
 

Parcourir ce sujet :   1 Utilisateur(s) anonymes





assert
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1943
Hors Ligne
bonjour

Je cherche à comprendre le rôle et fonctionnement de la macro assert qui semble un des éléments de bonne pratique du C ANSI mais j'ai beau regarder des cours ça me parle chinois !

Dans les drivers de périphériques freescale fournis avec KDS, il y en a au début de beaucoup de fonction pour semble il tester les paramètres passés à la fonction
assert(handle); //par exemple


Ce que je comprends c'est que ça teste si l'expression n'est pas égale à 0 et si oui rend un message et stoppe le programme avec "abort", mais ça intervient à quel niveau ce truc ? durant le début seulement ? Ou alors ça fait quoi ? (Reset ? explosion thermonucléaire ? électrisation du programmeur ?)

Merci

Posté le : 15/05/2016 21:09
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer


Re: assert
Accro
Inscrit:
06/07/2007 09:17
Messages: 697
Hors Ligne
l'assert est une macro fonction.

Effectivement elle est utilisé pour tester les paramètres que la fonction recoit.
Comme c'est une macro, elle n'est active QUE pendant la phase de développement... Une fois la fonction/produit validé, plus besoin de faire les tests car tu maitrise l'ensemble.

Posté le : 17/05/2016 08:39
Transférer la contribution vers d'autres applications Transférer


Re: assert
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1943
Hors Ligne
Salut

Du coup ça donne des messages à quel niveau ? c'est forcément après compilation vu que ca test dynamiquement les paramètres passés mais ça intervient où et sous quelle forme après ?

J'ai essayé de mettre ce test en défaut dans une fonction et de débugger : je n'ai pas vu où ça faisait quoi.

Posté le : 17/05/2016 09:20
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer


Re: assert
Accro
Inscrit:
06/07/2007 09:17
Messages: 697
Hors Ligne
Oui, test dynamique...
pour le niveau, je dirais tout dépend de l'implementation de l'assert...
Dans notre cas, je dirais un TRAP pour les paramêtre out of specified range ^^.

Posté le : 17/05/2016 18:07
Transférer la contribution vers d'autres applications Transférer


Re: assert
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1943
Hors Ligne
et un TRAP ça intervient à quel niveau ? C'est un des outils de GNU C pour afficher des trucs sur la console ?

Merci, je comprends vite mais il faut m'expliquer longtemps...


Posté le : 17/05/2016 18:29
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer



 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

assert [Forums - Langage C]