编译结构体问题 expected specifier-qualifier-list before XXX gcc g++

编译结构体问题 expected specifier-qualifier-list before XXX gcc g++

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

你可能感兴趣的:(编译结构体问题 expected specifier-qualifier-list before XXX gcc g++)