我有一个程序下面的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。
任何想法?
我有一个程序下面的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。
任何想法?
void print_foo(char board[ROW][COL]);
不是函数调用。这是一个声明。
你可能想
print_foo(board);
字符需要去:) – JohnIdol 2009-11-22 00:37:44
“你可能想要”的行可能是不正确的。请参阅Alex Martelli的回答,以获得更多的上下文和更可能的答案。 – 2009-11-22 00:42:12
哎呀。 char也是。 – 2009-11-22 00:58:52
这看起来像一个函数声明,我 - 这就是为什么你富,nction不会被调用。
你的中间线只是一个函数声明,而不是函数调用。
即void
前缀使中间线成的功能print_foo
的声明(和括号内的char
意味着这将是无效的语法以其他方式)。只需要致电print_foo
,将中间行更改为print_foo(board);
(如果board
是您如何命名该2-D字符数组)。
如果你没有申报的原型以前那么你必须这样写:调用之前
printf("Test before print_foo()");
void print_foo(char board[ROW][COL]);
print_foo(board);
printf("Test after print_foo()");
总之你必须定义/声明print_foo,或者你的编译器就会出错!
糟糕。感谢球员们的及时回应。 – Brian 2009-11-22 00:39:24