在标准C中,typedef 一样的结构体取两个不同的别名,编译会报错吗?怎么解决?
例子如下typedefstruct{intidx;ushortdevid;ushortreg;ushortvalue;}tFixUnit;typedefstruct{in...
例子如下
typedef struct {
int idx;
ushort devid;
ushort reg;
ushort value;
} tFixUnit;
typedef struct {
int idx;
ushort devid;
ushort reg;
ushort value;
} tYkUnit; 展开
typedef struct {
int idx;
ushort devid;
ushort reg;
ushort value;
} tFixUnit;
typedef struct {
int idx;
ushort devid;
ushort reg;
ushort value;
} tYkUnit; 展开
3个回答
展开全部
不会报错。typedef就是类型别名。一个类型有多少个别名都可以。
还有,你举的这个例子,说是相同的结构体,其实不是。
你这两个结构体都会被编译器生成两个完全不同的匿名结构体,然后分别被别名。
typedef struct Unit{
int idx;
ushort devid;
ushort reg;
ushort value;
};
typedef struct Unit tFixUnit;
typedef struct Unit tYkUnit;
这才是同一个结构体类型两个别名。
还有,你举的这个例子,说是相同的结构体,其实不是。
你这两个结构体都会被编译器生成两个完全不同的匿名结构体,然后分别被别名。
typedef struct Unit{
int idx;
ushort devid;
ushort reg;
ushort value;
};
typedef struct Unit tFixUnit;
typedef struct Unit tYkUnit;
这才是同一个结构体类型两个别名。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询