问题
单项选择题
以下对结构体类型变量的定义中,不正确的是
A.typedef struct 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
解析: 定义结构体类型的变量有几种的方法如下: ①定义结构体类型的同时,定义结构体类型的变量,如下面的定义中在定义结构体类型aa的同时定义了该类型的变量tdl。上述B)项中将宏名AA用宏体 struct aa替换进去后,与该定义形式一样,因此是正确的。这一定义形式中,结构体类型名明是可以省略的,因此,D)项也是正确的。 struct aa { ... }tdl; ②先定义结构体类型,然后再定义结构体类型的变量,形式如下: struct aa { … }; struct aa tdl; 这种定义形式也可演变为,先用类型定义语句typedef将该结构体类型定义成一个类型名AA,然后直接用该类型名AA去定义一个变量(这时不再需要使用关键字struct了)。这就是A)项的形式。