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?

Était-ce utile?

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 !!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top