Article View: fr.comp.lang.c
Article #89Assertions (était Re: Lint et règles de codage.)
From: Patrick Lamaizière
Date: Mon, 23 Sep 2002 20:38
Date: Mon, 23 Sep 2002 20:38
43 lines
3098 bytes
3098 bytes
Emmanuel Delahaye a �crit dans le message
<news:Xns9292C82052CA8hsnoservernet@130.133.1.4>
>> Pourquoi ne pas utiliser une assertion ? Si une des cha�nes est
>> NULL c'est manifestement un bug. Si en plus � l'utilisation on ne
>> teste pas la valeur de retour, le probl�me - parce que t�t ou
>> tard �a plantera - risque d'�tre bien plus difficle �
>> diagnostiquer.
>
> Un assert() est fait pour diagnostiquer une erreur de codage, pas
> une erreur d'utilisation.
Hum que veux-tu dire, quelle est la diff�rence ? Pour moi le fait
d'appeler une routine de copie de cha�ne avec une cha�ne pointant sur
rien est une erreur d'utilisation (du � quoi on ne sait pas). C'est �
l'appelant de s'assurer qu'il remplit bien les (pr�)conditions de la
fonction, pas � la fonction elle-m�me.
Par exemple, �a n'a aucun sens d'appeler une fonction qui calcule une
racine carr�e avec un nombre n�gatif.
fonction racine ( un_entier )
assert ( un_entier >= 0 )
resultat:= .....
fin
> En fait, �a d�pend du statut de la
> fonction. Si elle est priv�e, assert(). Si elle est publique, test
> et code retours.
Je ne vois pas le rapport avec les assertions.
> Ne pas oublier que les macros assert() peuvent �tre d�sactiv�es
> (non compil�es) par NDEBUG en version finale. (VC6 fait �a
> automatiquement en mode release).
Oui, c'est le but.
Je sugg�re qu'on poursuive sur fr.comp.developpement. On s'�loigne du C
et les assertions s'appliquent � d'autres langages.
--
Patrick
Technical Details
Message-ID:
<Xns9292E65077F28plam@patrick.noorg>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!212.43.194.69!fr.clara.net!heighliner.fr.clara.net!proxad.net!feeder2-1.proxad.net!news1-1.free.fr!not-for-mailReferences:
<MPG.17f4601d769f431b9896f4@127.0.0.1> <MPG.17f5d2a760e60eff9896f7@127.0.0.1> <amhf8l$1dt5$1@norfair.nerim.net> <MPG.17f6865fda05d0b49896f8@127.0.0.1> <amk4p8$6b$1@norfair.nerim.net> <MPG.17f804846b4e213e9896fe@127.0.0.1> <Xns9292C342D5CFEplam@patrick.noorg> <Xns9292C82052CA8hsnoservernet@130.133.1.4>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: f9822,988ad4502c6de897 X-Google-Attributes: gidf9822,public X-Google-Thread: 102e15,a3dbd8dc3aacf7b6,start X-Google-Attributes: gid102e15,public X-Google-ArrivalTime: 2002-09-23 13:38:53 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!212.43.194.69!fr.clara.net!heighliner.fr.clara.net!proxad.net!feeder2-1.proxad.net!news1-1.free.fr!not-for-mail Newsgroups: fr.comp.lang.c,fr.comp.developpement Subject: Assertions (était Re: Lint et règles de codage.) From: Patrick Lamaizière <plamaiziere@alussinan.org> References: <MPG.17f4601d769f431b9896f4@127.0.0.1> <MPG.17f5d2a760e60eff9896f7@127.0.0.1> <amhf8l$1dt5$1@norfair.nerim.net> <MPG.17f6865fda05d0b49896f8@127.0.0.1> <amk4p8$6b$1@norfair.nerim.net> <MPG.17f804846b4e213e9896fe@127.0.0.1> <Xns9292C342D5CFEplam@patrick.noorg> <Xns9292C82052CA8hsnoservernet@130.133.1.4> Date: Mon, 23 Sep 2002 22:38:26 +0200 Organization: Unza Unza Unza time Message-ID: <Xns9292E65077F28plam@patrick.noorg> Followup-To: fr.comp.developpement User-Agent: Xnews/05.08.12 Mime-proxy/1.0.c.0 X-Ignore-Test: yes Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Lines: 43 NNTP-Posting-Date: 23 Sep 2002 22:38:51 MEST NNTP-Posting-Host: 193.252.189.107 X-Trace: 1032813531 news1-1.free.fr 10517 193.252.189.107 X-Complaints-To: abuse@proxad.net