2009-11-22 54 views
1

我有一个程序下面的C代码: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。

任何想法?

+0

糟糕。感谢球员们的及时回应。 – Brian 2009-11-22 00:39:24

回答

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

不是函数调用。这是一个声明。

你可能想

print_foo(board); 
+1

字符需要去:) – JohnIdol 2009-11-22 00:37:44

+0

“你可能想要”的行可能是不正确的。请参阅Alex Martelli的回答,以获得更多的上下文和更可能的答案。 – 2009-11-22 00:42:12

+0

哎呀。 char也是。 – 2009-11-22 00:58:52

2

这看起来像一个函数声明,我 - 这就是为什么你富,nction不会被调用。

2

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

3

void前缀使中间线成的功能print_foo的声明(和括号内的char意味着这将是无效的语法以其他方式)。只需要致电print_foo,将中间行更改为print_foo(board);(如果board是您如何命名该2-D字符数组)。

2

如果你没有申报的原型以前那么你必须这样写:调用之前

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

总之你必须定义/声明print_foo,或者你的编译器就会出错!