我在程序中有以下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 :(得分: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);