C函数在运行时跳过

时间:2009-11-22 00:34:53

标签: 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是传入的2-D字符数组,导入了正确的.c和.h文件。

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

有什么想法吗?

5 个答案:

答案 0 :(得分:3)

void前缀使得中间行成为函数print_foo的声明(并且括号内的char意味着它将是无效语法)。要调用 print_foo,请将中间行更改为print_foo(board);(如果board是您为该二维字符数组命名的方式)。

答案 1 :(得分:2)

这看起来像是一个函数声明 - 这就是为什么你的函数没有被调用。

答案 2 :(得分:2)

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

答案 3 :(得分:2)

如果您之前未申报原型,则必须写下:

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

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

答案 4 :(得分:1)

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

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

你可能想要

print_foo(board);