C函数在运行时跳过
我在程序中有以下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]
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的答案,了解更多上下文和更可能的答案。