在标准C中,typedef 一样的结构体取两个不同的别名,编译会报错吗?怎么解决?

例子如下
typedef struct {
int idx;
ushort devid;
ushort reg;
ushort value;
} tFixUnit;

typedef struct {
int idx;
ushort devid;
ushort reg;
ushort value;
} tYkUnit;

不会报错。typedef就是类型别名。一个类型有多少个别名都可以。
还有,你举的这个例子,说是相同的结构体,其实不是。
你这两个结构体都会被编译器生成两个完全不同的匿名结构体,然后分别被别名。
typedef struct Unit{
int idx;
ushort devid;
ushort reg;
ushort value;
};

typedef struct Unit tFixUnit;
typedef struct Unit tYkUnit;
这才是同一个结构体类型两个别名。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-08
为什么要取两个不同的名字呢?
木有什么意义啊。。。
第2个回答  2011-06-08
应该不会报错的
相似回答