以下对结构体类型变量的定义中,不正确的是( )。
A.typedef struet aa
int n;
float m;
AA;
AA tdl;
B.#define AA struct aa
AA int n;
float m;
tdl;
C.struct
int n;
float m;
aa;
struct aa tdl;
D.struct
int n;
float m;
tdl;
参考答案:C
解析: 定义结构体类型的变量有如下几种方法:
①定义结构体类型的同时,定义结构体类型的变量,如:
stract aa
{…}tdl;
选项B) 中将宏名AA用宏体structaa替换后,与该定义形式一样,因此是正确的。在这一定义形式中,结构体类型名aa是可以省略的,因此,D) 项也是正确的。
②先定义结构体类型,然后再定义结构体类型的变量,形式如下:
struct aa
{…};
strnct aa tdl;
这种定义形式也可演变为:先用类型定义语句typedef将该结构体类型定义成一个类型名 AA,然后直接用该类型名AA定义一个结构体变量(这时不再需要使用关键字struct)。因此选项A) 正确。