问一下关于结构体和联合的问题
请问这个结构体是什么语法,不懂什么原理
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和一个结构体两个成员。
逐层分析即可
[解决办法]
结构体和共用体的嵌套定义?