首页
社区
课程
招聘
[求助]问一个C语言的语法问题!
发表于: 2009-8-16 17:28 4013

[求助]问一个C语言的语法问题!

2009-8-16 17:28
4013
先贴代码:
#include<stdio.h>
typedef struct M
{
	int x;
	int y;
}*PM;
struct N
{
	struct M;
	int a;
	int b;
};
int main()
{
	N k;
	k.a=1;
	printf("%d\n",sizeof(N));
	return 0;
}


本在在看看DDK源码的时候发现结构体的一种奇怪的用法,就是如struct N中直接写个struct M。
本人不大清楚这个是做什么用的,就自己写个测试,结果发现定义在里面的那个东西根本无法访问,而且取struct N的大小的时候值是8,也就是说它没有占任何空间。
请指点一下微软这么写是什么意思啊?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我这样理解的
struct N 里的那个struct M; 应该只是声明吧? 没有定义 , 所以没有占位。  
不知道对不对?
2009-8-16 17:47
0
雪    币: 171
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
声明的作用是什么呢?
主要是不知道这东西有什么用。。。
2009-8-16 17:58
0
雪    币: 636
活跃值: (174)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
4
只是声明当然不占位。
struct N
{
  struct M m;
  int a;
  int b;
};
这样就占位了。
2009-8-17 09:00
0
游客
登录 | 注册 方可回帖
返回
//