首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

问一上关于结构体和联合的有关问题

2012-09-08 
问一下关于结构体和联合的问题请问这个结构体是什么语法,不懂什么原理typedef struct _IMAGE_RESOURCE_DIR

问一下关于结构体和联合的问题
请问这个结构体是什么语法,不懂什么原理
typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
  union {
  struct {
  DWORD NameOffset:31;
  DWORD NameIsString:1;
  };
  DWORD Name;
  WORD Id;
  };
  union {
  DWORD OffsetToData;
  struct {
  DWORD OffsetToDirectory:31;
  DWORD DataIsDirectory:1;
  };
  };
}
请高手讲一下。。

[解决办法]
_IMAGE_RESOURCE_DIRECTORY_ENTRY 由两部分构成,第一部分是 名字偏移量和是否为字符串 或者 名字 或者 Id,第二部分是 OffsetToData 或者OffsetToDirectory和DataIsDirectory
[解决办法]
可以分开来看, 先理解union的作用。
再理解struct的机制(DWORD NameOffset:31位域 )当然还有结构体对齐==

struct中包含union也可以包含struct

union大小是成员中最大的那个。
[解决办法]
共用体类型可以出现在结构体类型中,结构体类型也可以出现在共用体类型中。
结构体_IMAGE_RESOURCE_DIRECTORY_ENTRY 包含两个union成员。
其中:
第一个union中包含一个结构体,DWORD Name,WORD Id三个成员。
第二个union中包含DWORD OffsetToData和一个结构体两个成员。
逐层分析即可
[解决办法]
结构体和共用体的嵌套定义?

热点排行