我在程序中有以下 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。
有任何想法吗?
该void
前缀使中间行成为函数声明print_foo
(char
括号内的 表示否则它将是无效的语法)。只需调用 print_foo
,将中间行更改为print_foo(board);
(如果board
是您命名该二维字符数组的方式)。
这对我来说看起来像是一个函数声明——这就是你的 foo-nction 没有被调用的原因。
您的中间行只是一个函数声明,而不是函数调用。
如果你之前没有声明原型,那么你必须这样写:
printf("Test before print_foo()");
void print_foo(char board[ROW][COL]);
print_foo(board);
printf("Test after print_foo()");
简而言之,您必须在调用之前定义/声明 print_foo,否则您的编译器将标记错误!
void print_foo(char board[ROW][COL]);
不是函数调用。这是一个宣言。
你可能想要
print_foo(board);