error: storage class specified for parameter
編譯器報錯行往往不是真正錯誤位置,需向上追溯新增的頭文件。
頭文件中最後一個函數聲明缺少分號,導致編譯器將後續文件的第一個參數聲明誤認為該函數的存儲類別聲明。
// header.h
int func1() // 缺少分號
// main.c
#include "header.h"
int main() { // 編譯器在這裡報錯
return 0;
}
#include 定位具體文件。cppcheck、Clang Static Analyzer)預編譯掃描。| 錯誤信息 | 常見真實原因 |
|---|---|
| expected ';' before '}' token | 結構體/聯合體定義缺少結尾分號 |
| syntax error before 'type' | 前一行宏展開殘留、缺少括號/分號 |
| redeclaration of 'xxx' | 頭文件缺少防重複包含宏(#ifndef/#define/#endif) |