1

我在程序中有以下 C 代码:

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

其中 print_foo printf 是传入的二维字符数组,其中导入了正确的 .c 和 .h 文件。

控制台输出只有两个 printf 语句。调试时,运行时甚至从不进入 print_foo。

有任何想法吗?

4

5 回答 5

3

void前缀使中间行成为函数声明print_foochar括号内的 表示否则它将是无效的语法)。只需调用 print_foo,将中间行更改为print_foo(board);(如果board是您命名该二维字符数组的方式)。

于 2009-11-22T00:38:40.977 回答
2

这对我来说看起来像是一个函数声明——这就是你的 foo-nction 没有被调用的原因。

于 2009-11-22T00:37:07.287 回答
2

您的中间行只是一个函数声明,而不是函数调用。

于 2009-11-22T00:37:12.090 回答
2

如果你之前没有声明原型,那么你必须这样写:

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

简而言之,您必须在调用之前定义/声明 print_foo,否则您的编译器将标记错误!

于 2009-11-22T01:26:58.793 回答
1
void print_foo(char board[ROW][COL]);

不是函数调用。这是一个宣言。

你可能想要

print_foo(board);
于 2009-11-22T00:36:54.293 回答