概念
枚举类型
C语言中,枚举类型是被当做 int 或者 unsigned int 类型来处理的,按照C语言规范是没有办法遍历枚举类型的。
结构体(Struct)
结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员。
共用体(Union)
共用体是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。
程序代码
案例1
#include <stdio.h> enum DAY { MON=1, TUE=2, WED=3, THU=4, FRI=5, SAT=6, SUN=7 }; enum DAY day; struct Person{ int id; char name[50]; char email[50]; char mobile[100]; } person = {100,"李二","[email protected]","13412341234" }; union data{ int n; char ch; short m; }; /** 主函数 @param argc argc description @param argv argv description @return return value description */ int main(int argc,const char* argv[]){ enum DAY day; day = SUN; printf("%d\n",day); printf("id=%d\n",person.id); printf("name=%s\n",person.name); printf("email=%s\n",person.email); printf("mobile=%s\n",person.mobile); struct Person zhangsan={200,"张三","[email protected]","13412344567"}; printf("%d, %d\n", sizeof(zhangsan), sizeof(struct Person)); printf("id=%d\n",zhangsan.id); printf("name=%s\n",zhangsan.name); printf("email=%s\n",zhangsan.email); printf("mobile=%s\n",zhangsan.mobile); union data a; printf("%d, %d\n", sizeof(a), sizeof(union data) ); a.n = 0x40; printf("%X, %c, %hX\n", a.n, a.ch, a.m); a.ch = '9'; printf("%X, %c, %hX\n", a.n, a.ch, a.m); a.m = 0x2059; printf("%X, %c, %hX\n", a.n, a.ch, a.m); a.n = 0x3E25AD54; printf("%X, %c, %hX\n", a.n, a.ch, a.m); return 0; }