C Fonction Ignoré au Runtime
Question
J'ai le code C suivant dans un programme:
printf("Test before print_foo()");
void print_foo(char board[ROW][COL]);
printf("Test after print_foo()");
où print_foo printf est le passé dans le tableau de caractères 2-D avec .c approprié et les fichiers .h importés.
sortie de la console est que les deux printf. Debugging, l'exécution n'étapes même dans print_foo.
Toutes les idées?
La solution
void print_foo(char board[ROW][COL]);
n'est pas un appel de fonction. Il est une déclaration.
Vous voulez probablement
print_foo(board);
Autres conseils
Ce préfixe void
fait la ligne médiane dans une déclaration de la fonction print_foo
(et le char
dans les parenthèses signifie qu'il serait syntaxe non valide par ailleurs). Juste Appel print_foo
, changer la ligne médiane à print_foo(board);
(si board
comment vous avez nommé ce tableau de caractères 2-D).
Cela ressemble à une déclaration de fonction pour moi - c'est la raison pour laquelle votre fonction n'est pas appelée
.Votre ligne médiane est juste une déclaration de fonction, pas un appel de fonction.
Si vous n'avez pas fait le prototype précédemment alors vous devez écrire ceci:
printf("Test before print_foo()");
void print_foo(char board[ROW][COL]);
print_foo(board);
printf("Test after print_foo()");
En bref, vous devez définir / déclarer print_foo avant d'appeler, ou votre compilateur signaler une erreur !!