0
C 언어를 사용하여 main
의 argv
매개 변수를 을 stderr
에 인쇄 할 함수에 전달하려고합니다. 나는 이러한 유형의 오류 점점 계속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]);
}
}
: 여기
void erreur(Erreur_prog erreur_entree, const char **argv);
함수입니다 : 여기
은 함수 서명입니다 여기
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);
을의 예 전화 :
erreur(arguments_invalide, argv);
나는 포인터로 놀아 보려고했지만 ... 내가 얻지 못하는 것이있다.
누구나 내가 놓친 것을 지적 할 수 있습니까?
'expected 'const char **'하지만 인수는 'char **'유형입니다. '그 메시지는 명확하지 않습니까? – kaylum
전화 파트를 넣는 것을 잊어 버리 셨습니다 ... – Cyberflow
[왜 char \ * \ *를 const char \ * \ *로 전달하면 경고 메시지가 나타 납니까?] (http://stackoverflow.com/questions/14562845/why -does-passing-char-as-const-char-generate-a-warning) – DIMMSum