我有一個程序下面的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