我们知道struct对象可以在结构定义的末尾声明,就像这样:
struct vertex
{
float x,y,z;
}v1;
是像v1
这样的对象的声明
使用typedef struct可能可行吗?
typedef struct vertex
{
float x,y,z;
} vertex;
现在必须用
分别声明对象吗?vertex v1;
在这种情况下,是否可以不将它们附加在结构定义的末尾?
答案 0 :(得分:2)
如果使用“存储类” typedef
,则在结构之后定义的名称为typedef名称-结构类型的别名。因此,vertex
是类型名称。定义类型名称时,也不能定义任何变量。
答案 1 :(得分:2)
不,不能。
typedef
用于为另一种类型创建别名/同义词。不能用于变量声明。
typedef struct ver
{
float x,y,z;
} vertex;
在这里,vertex
与struct ver
相同(为了更好的理解,我稍稍更改了名称)。
一旦创建了类型(别名),就可以使用它来使用另一个标识符(例如
)来创建变量vertex v;
struct ver v1;