匿名结构和嵌套绩构 struct person 结构sruc char name 301 char sex ge int weight truct i 单结构 int areacode struct date long number int year, month, day; 3 Jim char mon[3] Jim number=1234567 }
结构struct !简单结构 struct date { int year, month, day; year, month, day; char char mon[3]; }; ! 匿名结构和嵌套结构 struct person{ char name[30]; char sex; int age; int weight; struct { int areacode; long number; }; } Jim; Jim.number = 1234567;
结构sruc(续) 构中的位域 struct mybitfields unsigned a: 4 unsigned b: 5 unsigned C s test 冷访问结构中的成员 操作符 Jim number 1234567:
结构struct(续) !结构中的位域 struct mybitfields struct mybitfields { unsigned a : 4; unsigned a : 4; unsigned b : 5; unsigned b : 5; unsigned c : 7; unsigned c : 7; } test; } test; !访问结构中的成员 .操作符 Jim.number = 1234567; Jim.number = 1234567;
联合 unIon 冫联合类型 lion u_tag int ival float fval; char - pval } MFC中典型的例子是 VARIANT的定义 冷联合与结构的区别 内存分配、引用方式
联合union !联合类型 union u_tag union u_tag { int ival int ival; float float fval; char * char *pval; }; MFC中典型的例子是VARIANT VARIANT的定义 !联合与结构的区别 内存分配、引用方式
冷枚举类型 enum Days ∥声明Days为枚举类型 saturday r ∥缺省 saturday=0 sunday=0,/指定 sunday=0 monday, l monday =1 枚举类型 tuesday, l tuesday =2 ednesday,∥等 thurso friday today ∥/定义变量 today为类型Days 使用例子 enum Days yesterday;∥C和C++中都合法 Days tomorrow; ∥C+合法,C非法 yesterday= monday int i=tuesday; ∥合法;i=2 yesterday =07 ∥非法,不允许 yesterday=(Days)0;∥合法,但结果不确定
枚 举 类 型 ! 枚举类型 enum Days // Days // 声明Days为枚举类型 { saturday saturday, // , // 缺省saturday saturday = 0 sunday = 0, // = 0, // 指定sunday = 0 monday, // , // monday = 1 tuesday tuesday, // , // tuesday tuesday = 2 wednesday wednesday, // , // 等 thursday thursday, friday } today; // } today; // 定义变量today 为类型Days ! 使用例子 enum Days yesterday; // C Days yesterday; // C 和C++ 中 都合法 Days tomorrow; // C++ Days tomorrow; // C++合法, C非法 yesterday = yesterday = monday; int i = tuesday tuesday; // ; // 合法; i = 2 yesterday = 0; // yesterday = 0; // 非法,不 允 许 yesterday = (Days)0; // yesterday = (Days)0; // 合法, 但结果不确定
typedef typedef char FlagType, const Flag ype x: typedef int (FAR WINAPI FARPROC)O; typedef int(WINAPI *PROC)O ROC proc int retVal =proc)Or
typedef typedef !例子 typedef typedef char FlagType FlagType; const const FlagType FlagType x; typedef int typedef int (FAR WINAPI *FARPROC)(); (FAR WINAPI *FARPROC)(); typedef int typedef int (WINAPI *PROC)(); (WINAPI *PROC)(); PROC proc PROC proc ...... ...... int retVal int retVal = (*proc)(); = (*proc)();