🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Eviter un warning

#15326
From: Pierre Habouzit
Date: Thu, 29 Sep 2005 07:31
68 lines
3068 bytes
Harpo wrote:

> Bonjour,
> 
> J'ai des fonctions dont la d�claration d�pend de l'API qui r�git la
> mani�re dont elles sont appel�es et il arrive parfois que je ne me
> serve pas d'1 argument :
> Exemple :
> int incr( int blah, int i )
> {
>     return ++i;
> }
> Le compilateur (GCC avec la conjugaison des options -W et -Wall) me
> signale :
> Warning: unused parameter 'blah'
> 
> Pour �viter ces warnings lassants, j'�cris :
> int incr( int unused, int i )
> {
>     [ en esp�rant que le compilateur ne g�n�re pas de code : ]
>     unused = unused;  // now unused is used
>     return ++i;
> }
> 
> Bon, ce n'est pas tr�s �l�gant mais �a marche.
> 
> Cependant, il me vient une question m�taphysique, si le premier argument
> �tait d�fini comme  'const int blah', �a ne marcherait plus.
en fait, avec gcc, il se trouve que ca marche.


> Quelqu'un connait-il une meilleure solution ?

avec GCC, tu peux faire :

int incr( int unused __attribute__((unused)), int i )
{
    [ en esp�rant que le compilateur ne g�n�re pas de code : ]
    unused = unused;  // now unused is used
    return ++i;
}

et tu peux par exemple faire :

#define __unused__ __attribute__((unused))

� utiliser comme c'est logique. ou encore :

#define UNUSED(var) var __attribute__((unused))

et faire :

int incr (UNUSED(int unused), int i)
{ ... }


Dans la pratique, tu ne te sers que d'un seul compilo pour la partie Devel,
et je ne suis pas choqu� d'utiliser des features du compilo en question
pour g�rer ce genre de choses. Lorsque tu as � porter ton appli sur un
autre compilo, en g�n�ral, le Unused ne t'int�resse plus, et tu vas plutot
enlever le warning Unused de ce compilo, plutot que de chercher � porter la
macro. Enfin, je suppose que tout ca d�pend des projets et tout, mais
bon ;)

-- 
�O�  Pierre Habouzit
��O                                                madcoder@debian.org
OOO                                                http://www.madism.org
Technical Details
Message-ID: <433b9847$0$21208$626a14ce@news.free.fr>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!infeed-4.proxad.net!news18-e.free.fr!not-for-mail
References: <433b8a93$0$17226$8fcfb975@news.wanadoo.fr>

Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,79548392e83a3222
X-Google-Attributes: gidf9822,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!infeed-4.proxad.net!news18-e.free.fr!not-for-mail
Message-ID: <433b9847$0$21208$626a14ce@news.free.fr>
From: Pierre Habouzit <madcoder@debian.org>
Subject: Re: Eviter un warning
Newsgroups: fr.comp.lang.c
Date: Thu, 29 Sep 2005 09:31:22 +0200
References: <433b8a93$0$17226$8fcfb975@news.wanadoo.fr>
User-Agent: KNode/0.9.2
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8Bit
X-Face: $(^e[V4D-[`f2EmMGz@fgWK!e.B~2g.{08lKPU(nc1J~z\4B>*JEVq:E]7G-\6$Ycr4<;Z!|VY6Grt]+RsS$IMV)f>2)M="tY:ZPcU;&%it2D81X^kNya0=L]"vZmLP+UmKhgq+u*\.dJ8G!N&=EvlD
Lines: 68
Organization: Guest of ProXad - France
NNTP-Posting-Date: 29 Sep 2005 09:31:19 MEST
NNTP-Posting-Host: 82.225.205.10
X-Trace: 1127979079 news18-e.free.fr 21208 82.225.205.10:60530
X-Complaints-To: abuse@proxad.net