expected specifier-qualifier-list before XXX gcc g++
這個問題主要是結構體變量定義引起:
1.未定義/未找到定義直接使用.
2.定義了,但是定義方式有問題.
gcc和g++在這個問題表現不同.
-----------------------------
簡陋方式
struct AA{
};
struct BB{
AA a1;
}
gcc -o test a.c
a.c: 在函數‘main’中:
a.c:18: 錯誤:‘AA’未聲明(在此函數內第一次使用)
a.c:18: 錯誤:(即使在一個函數內多次出現,每個未聲明的標識符在其
a.c:18: 錯誤:所在的函數內也只報告一次。)
---------------------------------------------------------------
關鍵詞沒用對
修改成:
typedef struct AA{
};
: 警告:空聲明中指定存儲類無用
a.c: 在函數‘main’中:
a.c:18: 錯誤:‘AA’未聲明(在此函數內第一次使用)
a.c:18: 錯誤:(即使在一個函數內多次出現,每個未聲明的標識符在其
a.c:18: 錯誤:所在的函數內也只報告一次。)
------------------------------
實用關鍵詞
typedef struct
{
}AA ;
編譯通過.
-----------------------------------------
typedef struct AA
{
AA * ptr;
}AA ;
徹底解決問題. ----- 最佳方式吧.
---------------------------------------------
g++ 毫無問題. 最簡單方式就ok.
struct AA{
};
http://stackoverflow.com/questions/608175/what-does-this-error-mean-error-expected-specifier-qualifier-list-before-typ
http://stackoverflow.com/questions/3888569/expected-specifier-qualifier-list-before