🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #89

Assertions (était Re: Lint et règles de codage.)

#89
From: Patrick Lamaizière
Date: Mon, 23 Sep 2002 20:38
43 lines
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-mail
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>

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