首页 > 解决方案 > typedef 结构定义末尾的变量声明

问题描述

我们知道可以在结构定义的末尾声明结构对象,如下所示:

struct vertex
{
float x,y,z;
}v1;

v1 在使用 typedef 结构时,这样的对象声明是否可能?

typedef struct vertex
{
float x,y,z;
} vertex;

现在是否必须单独声明对象

vertex v1;

在这种情况下,它们不能附加在结构定义的末尾吗?

标签: cstructtypedefc89

解决方案


如果您使用 'storage class' typedef,那么在结构之后定义的名称就是 typedef 名称——结构类型的别名。所以,vertex是一个类型名称。定义类型名称时,不能同时定义任何变量。


推荐阅读