C函数在运行时跳过

C函数在运行时跳过,c,function,runtime,void,C,Function,Runtime,Void,我在程序中有以下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\u foo 有什么想法吗 void print_foo(char board[ROW][COL]

我在程序中有以下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\u foo

有什么想法吗

void print_foo(char board[ROW][COL]);
不是函数调用。这是一份声明

你可能想要

print_foo(board);
不是函数调用。这是一份声明

你可能想要

print_foo(board);

这对我来说就像是一个函数声明,这就是为什么你的函数没有被调用。

这对我来说就像是一个函数声明,这就是为什么你的函数没有被调用。

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

你的中间线只是一个函数声明,不是函数调用。

void
前缀将中间一行变成函数声明
print\u foo
(括号内的
char
表示它在其他情况下无效语法)。只需调用
print\u foo
,将中间行更改为
print\u foo(board)
(如果
board
是二维字符数组的命名方式)。

前缀
void
将中间一行变成函数声明
print\u foo
(括号内的
char
表示语法无效)。只需调用
print\u foo
,将中间行更改为
print\u foo(board)(如果
board
是您命名该二维字符数组的方式)。

如果您之前没有声明原型,则必须编写以下内容:

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

简而言之,在调用之前必须定义/声明print\u foo,否则编译器将标记错误

如果您之前没有声明原型,那么您必须编写以下内容:

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

简而言之,在调用之前必须定义/声明print\u foo,否则编译器将标记错误

哎呀。感谢各位的及时回复。哎呀。谢谢大家的及时回复。你可能想要的那句话可能不正确。请参阅Alex Martelli的答案,了解更多的上下文和更可能的答案。“您可能想要”一行可能不正确。请参阅Alex Martelli的答案,了解更多上下文和更可能的答案。