1、从内存使用的特点上来说
结构体占用的内存等于各个结构体成员所占内存的总和,共用体类型等于其中占用最大内存那个成员所占用的内存,枚举类型事实上就是定义的特殊整数,而这个整数类型有固定的取值范围,但是他仍然会占用一个整形变量的内存。
2、从对变量的使用上来说
对应于以三个类型内存的使用策略,对每一个结构体成员的读写操作,都是可以而有意义的,而对于共用体而言,则只有其中的一个成员具备这样的意义。枚举类型你可认为就是一个特殊的整数类型。
这么用的,下面给你个例子,不知道你能不能看懂。
#include
#include
typedef struct Node
{
int data;
struct Node *next;
}LinkList,*LinkList2;
int main()
{
LinkList sd;
LinkList2 sd2;
sd2 = (LinkList*)malloc(sizeof(LinkList));
return 0;
}
一个是结构体变量,一个是结构体指针
这是结构体对齐问题,首个变量是成员的整数倍,而且是最长变量的整数倍。所以是8