OVH Cloud OVH Cloud

arguments inutilisés

4 réponses
Avatar
pere.noel
souvent dans un main je n'utilise pas les arguments, aussi je mets void,
ça passe très bien, par contre si je veux pourvoir utiliser :

int main(int argc, char **argv, char **env)

car je souhaite avoir les vars d'environnement, cc me dit :

environ.c: In function 'main':
environ.c:21: warning: unused parameter 'argc'
environ.c:21: warning: unused parameter 'argv'
=> compile


si par contre, je les omets comme ça (trouvé en googleisant) :

int main(int, char **, char **env)
là c'est pire :
environ.c: In function 'main':
environ.c:9: error: parameter name omitted
environ.c:9: error: parameter name omitted
=> ne compile pas...

je continue mes recherches :
<http://fabrice.bellard.free.fr/tcc/tcc-doc.html>
3.3 GNU C extensions

unused: specify that the variable or the function is unused.

j'ajoute donc :

unused: argc, argv;

environ.c: In function 'main':
environ.c:11: warning: left-hand operand of comma expression has no
effect
environ.c:11: warning: statement with no effect
environ.c:11: warning: label 'unused' defined but not used
=> compile

donc, y a t'il un moyen de spécifier les args non utilisés et qui ne
donne pas de warnings ???
--
une bévue

4 réponses

Avatar
Stéphane Goujet
Une bévue wrote:

donc, y a t'il un moyen de spécifier les args non utilisés et qui ne
donne pas de warnings ???
int main(int argc, char **argv, char **env)


Par exemple, si tu n'utilise pas argc ni argv :

int main(int argc, char **argv, char **env) {
(void) argc;
(void) argv;

...
}

A+,
Stéphane.

Avatar
pere.noel
Stéphane Goujet wrote:

Par exemple, si tu n'utilise pas argc ni argv :

int main(int argc, char **argv, char **env) {
(void) argc;
(void) argv;


OK, merci ça roule !
--
une bévue

Avatar
Eric Levenez
Le 11/09/06 19:19, dans
<1hlil70.neolbo1gc17wyN%, « Une bévue »
a écrit :

3.3 GNU C extensions


Non, ne jamais utiliser ces extensions. Maintenant beaucoup de programmes
sont non portables à causes de ces extensions du type alloca.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
pere.noel
Eric Levenez wrote:

3.3 GNU C extensions


Non, ne jamais utiliser ces extensions. Maintenant beaucoup de programmes
sont non portables à causes de ces extensions du type alloca.


OK, merci, pas de pb, Stéphane Goujet m'a filé une solution qui roule :

int main(int argc, char **p_argv, char **p_env) {
(void) argc;
(void) p_argv;
...
}
--
une bévue