編譯結(jié)構(gòu)體問(wèn)題 expected specifier-qualifier-list before XXX gcc g++
expected specifier-qualifier-list before XXX gcc g++
這個(gè)問(wèn)題主要是結(jié)構(gòu)體變量定義引起:
1.未定義/未找到定義直接使用.
2.定義了,但是定義方式有問(wèn)題.
gcc和g++在這個(gè)問(wèn)題表現(xiàn)不同.
-----------------------------
簡(jiǎn)陋方式
struct AA{
};
struct BB{
AA a1;
}
gcc -o test a.c
這個(gè)問(wèn)題主要是結(jié)構(gòu)體變量定義引起:
1.未定義/未找到定義直接使用.
2.定義了,但是定義方式有問(wèn)題.
gcc和g++在這個(gè)問(wèn)題表現(xiàn)不同.
-----------------------------
簡(jiǎn)陋方式
struct AA{
};
struct BB{
AA a1;
}
gcc -o test a.c
a.c: 在函數(shù)‘main’中:
a.c:18: 錯(cuò)誤:‘AA’未聲明(在此函數(shù)內(nèi)第一次使用)
a.c:18: 錯(cuò)誤:(即使在一個(gè)函數(shù)內(nèi)多次出現(xiàn),每個(gè)未聲明的標(biāo)識(shí)符在其
a.c:18: 錯(cuò)誤:所在的函數(shù)內(nèi)也只報(bào)告一次。)
---------------------------------------------------------------
關(guān)鍵詞沒(méi)用對(duì)
修改成:
typedef struct AA{
};
---------------------------------------------------------------
關(guān)鍵詞沒(méi)用對(duì)
修改成:
typedef struct AA{
};
: 警告:空聲明中指定存儲(chǔ)類(lèi)無(wú)用
a.c: 在函數(shù)‘main’中:
a.c:18: 錯(cuò)誤:‘AA’未聲明(在此函數(shù)內(nèi)第一次使用)
a.c:18: 錯(cuò)誤:(即使在一個(gè)函數(shù)內(nèi)多次出現(xiàn),每個(gè)未聲明的標(biāo)識(shí)符在其
a.c:18: 錯(cuò)誤:所在的函數(shù)內(nèi)也只報(bào)告一次。)
------------------------------
實(shí)用關(guān)鍵詞
}AA ;
編譯通過(guò).
-----------------------------------------
}AA ;
徹底解決問(wèn)題. ----- 最佳方式吧.
---------------------------------------------
g++ 毫無(wú)問(wèn)題. 最簡(jiǎn)單方式就ok.
struct AA{
};
------------------------------
實(shí)用關(guān)鍵詞
typedef struct
{
}AA ;
編譯通過(guò).
-----------------------------------------
typedef struct AA
{
AA * ptr;}AA ;
徹底解決問(wèn)題. ----- 最佳方式吧.
---------------------------------------------
g++ 毫無(wú)問(wèn)題. 最簡(jiǎn)單方式就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
posted on 2015-08-24 13:57 小高 閱讀(4606) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): C