使用C ANSI语言,我尝试将main
的{{1}}参数传递到将在argv
中打印msg
的函数。
这是函数签名:
stderr
这是功能:
void erreur(Erreur_prog erreur_entree, const char **argv);
我一直在犯这种错误:
void erreur(Erreur_prog erreur_entree, const char **argv)
{
switch (erreur_entree)
{
case status_ok:
fprintf(stderr, "%s : Le status est ok.\n", argv[0]);
exit(0);
break;
case fichier_pgm_manquant:
fprintf(stderr, "%s : Le fichier PGM est manquant.\n", argv[0]);
exit(fichier_pgm_manquant);
break;
default:
fprintf(stderr, "%s : Erreur.\n", argv[0]);
}
}
以下是电话会议的一个例子:
tp2.c:139:33: attention : passing argument 2 of ‘erreur’ from incompatible pointer type
erreur(arguments_invalide, argv);
^
tp2.c:55:6: note: expected ‘const char **’ but argument is of type ‘char **’
void erreur(Erreur_prog erreur_entree, const char **argv);
我试着玩指针但是......有些东西我没有得到。
任何人都可以指出我错过了什么?
答案 0 :(得分:0)
好了,给了我一个好的头,并清醒了我已经重新安排了代码并且它有效。
这是函数签名:
void erreur(Erreur_prog erreur_entree, const char * nomAppli);
这是功能:
void erreur(Erreur_prog erreur_entree, const char * nomAppli)
{
switch (erreur_entree)
{
case status_ok:
fprintf(stderr, "%s : Le status est ok.\n", nomAppli);
exit(0);
break;
case fichier_pgm_manquant:
fprintf(stderr, "%s : Le fichier PGM est manquant.\n", nomAppli);
exit(fichier_pgm_manquant);
break;
default:
fprintf(stderr, "%s : Erreur.\n", nomAppli);
}
}
以下是电话会议的一个例子:
erreur(arguments_invalide, argv[0]);
不再有编译警告
我猜他并不喜欢我在签名中使用const char ** argv
这是指向指针的指针,我需要使用指针(const char * monAppli)
希望这将有助于未来的其他人。