Вопрос

У меня есть следующий C-код в программе:

printf("Test before print_foo()");
void print_foo(char board[ROW][COL]);
printf("Test after print_foo()");

где print_foo printf - это переданный в 2-D массив символов с импортированными соответствующими файлами .c и .h.

Консольный вывод - это только два оператора printf.При отладке время выполнения даже не переходит в print_foo.

Есть какие-нибудь идеи?

Это было полезно?

Решение

void print_foo(char board[ROW][COL]);

это не вызов функции.Это декларация.

Вы, вероятно, хотите

print_foo(board);

Другие советы

Это void префикс превращает среднюю строку в объявление функции print_foo (и тот char в круглых скобках означает, что в противном случае это был бы недопустимый синтаксис).Чтобы просто позвонить print_foo, измените среднюю линию на print_foo(board); (если board это то, как вы назвали этот двумерный символьный массив).

Для меня это выглядит как объявление функции - вот почему ваша функция не вызывается.

Ваша средняя строка - это просто объявление функции, а не вызов функции.

Если вы ранее не объявляли прототип, то вам нужно написать это :

printf("Test before print_foo()");
void print_foo(char board[ROW][COL]);
print_foo(board);
printf("Test after print_foo()");

Короче говоря, вы должны определить / объявить print_foo перед вызовом, иначе ваш компилятор выдаст ошибку !!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top