錯誤程式碼片段
#include
int main(void)
; // 錯誤:多餘分號
{
system("pause"); // 警告:隱式宣告
return 0;
}
錯誤分析
- 缺少標頭檔:`system()` 宣告於 ``,未包含會導致隱式宣告警告,甚至連結錯誤。
- `main()` 後多餘分號:`int main(void) ;` 被視為函式宣告,後面的 `{ ... }` 變成獨立區塊,非函式本體,導致編譯錯誤。
- 檔案副檔名:確保存為 `.c`(非 `.cpp`),避免 C++ 編譯器對隱式宣告更嚴格。
修正後程式碼
#include <stdio.h>
#include <stdlib.h> // 必須包含
int main(void) { // 移除分號
system("pause"); // Windows 下暫停控制台
return 0;
}
補充說明
- `system("pause")` 僅適用 Windows;跨平台建議用 `getchar()` 等待輸入。
- 編譯器警告 `implicit declaration of function 'system'` 即提示缺少標頭檔。
- 良好習慣:所有標準庫函式使用前先查閱手冊確認所需標頭檔。
總結
初學者最易犯「漏標頭檔」與「語法符號誤用」。養成「報錯先看第一行、警告不可忽視」的習慣,能大幅降低除錯時間。