结构体变量的多次声明
标签允许多个声明使用同一个成员列表,并且创建同一种类型的结构体
以下是小菜的理解,不知如何正确理解这句话
用的是vs编译环境
typedef struct A
{
int a;
}A;
typedef struct A
{
int a;
}B;
//error C2011:struct 类型重定义
typedef struct A
{
int a;
}A;
typedef struct A
{
int a;
}B;
A ta;
B *tb = & ta;// 赋值类型不兼容
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
多次声明的意义何在???
我认为你的代码应该报重复定义的错误.
你用的什么编译器?我用gcc编译,提示的错误是重复定义struct A
这样其实没有错误也没有警告.
你是不是在不同的cpp里声明的这两个struct?不同cpp的话,虽然名字都是A,但是是不同的两个struct,自然不能直接使用。
如果是在同一个cpp,理论上会报错,至少也是warning才对。莫非是编译器自动把A给忽略了,直接认为你声明了A、B两种struct?