c中的结构体嵌套问题

heytry 2011-08-13 12:33:20
struct outer {
struct inner {
} member;
};

struct outer var1;

像上面这样的结构体,如果我想要声明一个inner的变量该如何写:

struct outer::inner var2; // 这样无法编译
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2011-08-13
  • 打赏
  • 举报
回复
类型定义不能嵌套,应该与作用域有关,你的 global variables 可以与 struct 中的同名

解决方法 ls 都有
wizard_tiger 2011-08-13
  • 打赏
  • 举报
回复
 
struct inner
{
};
struct outer
{
struct inner member;
};

声名成这样应该就可以了
xin_wu_hen 2011-08-13
  • 打赏
  • 举报
回复

#include <stdio.h>

struct outer {
struct inner {
int a;
int b;
};
};

void main()
{
outer::inner st_inner;
st_inner.a = 3;
st_inner.b = 4;
printf("%d\n", st_inner.a);
printf("%d\n", st_inner.b);
getchar();
}

这段代码在vs2010下编译完全通过。应该是可以的啊。
jernymy 2011-08-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 anyidan 的回复:]
类型定义不能嵌套,应该与作用域有关,你的 global variables 可以与 struct 中的同名

解决方法 ls 都有
[/Quote]
++
delphiwcdj 2011-08-13
  • 打赏
  • 举报
回复


#include <cstdio>
typedef struct inner {
}INNER;
typedef struct outer {
INNER member;
}OUTER;

int main()
{
INNER obj;
return 0;
}

zxg1102 2011-08-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 anyidan 的回复:]

类型定义不能嵌套,应该与作用域有关,你的 global variables 可以与 struct 中的同名

解决方法 ls 都有
[/Quote]

+1
Athenacle_ 2011-08-13
  • 打赏
  • 举报
回复
没有办法的。
ho121 2011-08-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xin_wu_hen 的回复:]

C/C++ code

#include <stdio.h>

struct outer {
struct inner {
int a;
int b;
};
};

void main()
{
outer::inner st_inner;
st_inner.a = 3;
st_inner.b = 4;
printf("%d\n",……
[/Quote]
这是c++的

69,371

社区成员

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

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