问一下这2个struct有啥区别阿?

tonyge1 2009-09-17 02:10:01
typedef struct myStruct {
union {
struct myStruct ms;
} u;

char t;
char n[1];
} *PStruct;


typedef struct myStruct {
struct myStruct ms;
char t;
char n[1];
} *PStruct;
...全文
183 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonyge1 2009-09-19
  • 打赏
  • 举报
回复
不好意思 ,struct myStruct *ms;
是指针,漏掉了。
xzh_endless 2009-09-18
  • 打赏
  • 举报
回复
都是错误的写法
BaihowFF 2009-09-17
  • 打赏
  • 举报
回复
union应该是这样用的...

typedef struct
{
int a;
int b;
union
{
struct A
{
};

struct B
{
};

struct C
{
};
};
}XXX;
bxk253387223 2009-09-17
  • 打赏
  • 举报
回复
typedef struct myStruct { 
struct myStruct ms; //在这里还不知道struct myStruct是个什么样子呢,应该用指针
char t;
char n[1];
} *PStruct


改成指针后,一切都一样,只是使用的时候麻烦点儿。
aozhi 2009-09-17
  • 打赏
  • 举报
回复
搞笑了
pustian 2009-09-17
  • 打赏
  • 举报
回复
都不能编译过,C/C++不允许struct嵌套(struct指针例外)。
要不你想一下怎么能确定要分配的内存大小
  • 打赏
  • 举报
回复
都没有区别,但是你能编译过么?
selooloo 2009-09-17
  • 打赏
  • 举报
回复
应该是这样吧,struct myStruct *ms
两个没啥区别,占用内存一样大,第一个取ms值要多一步
ChRedfield 2009-09-17
  • 打赏
  • 举报
回复
struct就不用说了。

union维护足够的空间放多个数据成员间的一种

不过这么写的。。。木见过
hoomey 2009-09-17
  • 打赏
  • 举报
回复
真编译不过
Kusk 2009-09-17
  • 打赏
  • 举报
回复
能编译得过吗?
lbh2001 2009-09-17
  • 打赏
  • 举报
回复
都不合法
hoomey 2009-09-17
  • 打赏
  • 举报
回复
没啥区别吧
第一个只是多了层皮而已

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧