Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Astuce pour éviter warning

8 réponses
Avatar
Pascal
Bonjour,

Je cherche une astuce pour éviter le warning qui dit que mon param est
déclaré mais jamais utilisé (ce qui est vrai bien sur)

Voici mes déclarations

typedef struct
{
SBYTE const *cde;
BYTE NumCde;
void (*near fct)(BYTE adr,BYTE dir, BYTE numcde, WORD *param);
}CdeRS485;

void fct1(BYTE adr, BYTE dir,BYTE numcde, WORD *param)
{
code qui n'utilise pas param => WARNING
}

void fct2(BYTE adr, BYTE dir,BYTE numcde, WORD *param)
{
code qui utilise param => pas de warning
}

Mis à part le fait d'assigner dans fct1une valeur à param y a t'il un moyen
d'éviter ce warning?

Merci pour vos lumières.

P.S : le code tourne sous un micro contrôleur 16bits donc si il y a un moyen
il ne faut pas que ca fasse perdre du temps au micro

8 réponses

Avatar
Pierre Maurette
Bonjour,

Je cherche une astuce pour éviter le warning qui dit que mon param est
déclaré mais jamais utilisé (ce qui est vrai bien sur)

Voici mes déclarations

typedef struct
{
SBYTE const *cde;
BYTE NumCde;
void (*near fct)(BYTE adr,BYTE dir, BYTE numcde, WORD *param);
}CdeRS485;

void fct1(BYTE adr, BYTE dir,BYTE numcde, WORD *param)
{
code qui n'utilise pas param => WARNING
}

void fct2(BYTE adr, BYTE dir,BYTE numcde, WORD *param)
{
code qui utilise param => pas de warning
}

Mis à part le fait d'assigner dans fct1une valeur à param y a t'il un moyen
d'éviter ce warning?

Merci pour vos lumières.

P.S : le code tourne sous un micro contrôleur 16bits donc si il y a un moyen
il ne faut pas que ca fasse perdre du temps au micro
Chez moi, une ligne comme:

param = param;
ou simplement:
param;
(et d'autres)
pour faire taire le warning sur *cette* variable, et ne génère pas de
code. A confirmer quand même, surtout si vous avez des volatile dans
votre code.
--
Pierre

Avatar
Trognon Patrice
Pierre Maurette wrote:

Bonjour,

Je cherche une astuce pour éviter le warning qui dit que mon param est
déclaré mais jamais utilisé (ce qui est vrai bien sur)

Voici mes déclarations

typedef struct
{
SBYTE const *cde;
BYTE NumCde;
void (*near fct)(BYTE adr,BYTE dir, BYTE numcde, WORD *param);
}CdeRS485;

void fct1(BYTE adr, BYTE dir,BYTE numcde, WORD *param)
{
code qui n'utilise pas param => WARNING
}

void fct2(BYTE adr, BYTE dir,BYTE numcde, WORD *param)
{
code qui utilise param => pas de warning
}

Mis à part le fait d'assigner dans fct1une valeur à param y a t'il un
moyen d'éviter ce warning?

Merci pour vos lumières.

P.S : le code tourne sous un micro contrôleur 16bits donc si il y a un
moyen il ne faut pas que ca fasse perdre du temps au micro
Chez moi, une ligne comme:

param = param;
ou simplement:
param;
(et d'autres)
pour faire taire le warning sur *cette* variable, et ne génère pas de
code. A confirmer quand même, surtout si vous avez des volatile dans
votre code.
--
Pierre



ou t'as les pragma, mais ca c'est spécifique a chaque compilo.

t'es sur quel compilo ?

--
Cordialement,

Patrice Trognon
http://wwW.javadevel.com


Avatar
Pierre Maurette
[...]
ou t'as les pragma, mais ca c'est spécifique a chaque compilo.

t'es sur quel compilo ?
J'avais C++Builder6 ouvert, donc Borland 5.6 (en C++). Et je n'avais pas

fait l'essai avec une fonction, mais une simple déclaration. En fait,
j'ai testé avec gcc et VC++8, en debug et release, et les résultats sont
variables. Parfois
int f(int a){return 0;}
ne warne pas.
Parfois, a = a; me laisse le warning ("....inutilisée"). Parfois, j'ai
un autre warning, "code has no effect".
--
Pierre

Avatar
Mungo Deepdelver[CEA][SDF]
On Wed, 9 Mar 2005, Pascal wrote:

Bonjour,

Je cherche une astuce pour éviter le warning qui dit que mon param est
déclaré mais jamais utilisé (ce qui est vrai bien sur)



sous gcc il y a un flag "-Wno-unused", il y a peut etre l'equivalent
pour ton compilateur.

--

int main(){int j34,putchar();char t[]=":@abcdefghij-lmnopqrstuv"
"wxyz.n",*i="@jq:.pn.q:",*strchr();while(*i)
{j+=strchr(t,*i++)-t;j%=sizeof t-1;putchar(t[j]);}return 0;}

Avatar
Pascal
Merci pour vos réponses.

J'ai effectivement la possibilité de faire taire le compilo par des pragma.
Mais cela veut dire que dans le cas où j'aurais un "vrai" warning du à une
erreur de ma part je ne le verrai plus :(
Enfin je vous remercie pour vos infos. Je vais essayer d'assigner la
variable comme le dis Pierre

Merci

"Mungo Deepdelver[CEA][SDF]" a écrit dans le message
de news:
On Wed, 9 Mar 2005, Pascal wrote:

Bonjour,

Je cherche une astuce pour éviter le warning qui dit que mon param est
déclaré mais jamais utilisé (ce qui est vrai bien sur)



sous gcc il y a un flag "-Wno-unused", il y a peut etre l'equivalent
pour ton compilateur.

--

int main(){int j34,putchar();char t[]=":@abcdefghij-lmnopqrstuv"
"wxyz.n",*i="@jq:.pn.q:",*strchr();while(*i)
{j+=strchr(t,*i++)-t;j%=sizeof t-1;putchar(t[j]);}return 0;}

Avatar
Emmanuel Delahaye
Pascal wrote on 09/03/05 :
void fct1(BYTE adr, BYTE dir,BYTE numcde, WORD *param)
{
code qui n'utilise pas param => WARNING


(void) param;

}


--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html

"C is a sharp tool"

Avatar
noone

(void) param;




merci pour cette astuce... très utile !

personellement je fais un peu de C++ et avec wxWidgets on a
WXUNUSED(param) pour régler ce genre de problème.

Avatar
Mathieu Arnold
Pascal écrivait:
Bonjour,

Je cherche une astuce pour éviter le warning qui dit que mon param est
déclaré mais jamais utilisé (ce qui est vrai bien sur)

Voici mes déclarations

typedef struct
{
SBYTE const *cde;
BYTE NumCde;
void (*near fct)(BYTE adr,BYTE dir, BYTE numcde, WORD *param);
}CdeRS485;

void fct1(BYTE adr, BYTE dir,BYTE numcde, WORD *param)
{
code qui n'utilise pas param => WARNING
}

void fct2(BYTE adr, BYTE dir,BYTE numcde, WORD *param)
{
code qui utilise param => pas de warning
}

Mis à part le fait d'assigner dans fct1une valeur à param y a t'il un moyen
d'éviter ce warning?


Si c'est supporté par le compilateur __unused :
void fct1(BYTE adr, BYTE dir,BYTE numcde, WORD *param __unused)

--
Mathieu Arnold