www.pudn.com > isync2[1].0.rar > CardStruct.h
#ifndef CARDSTRUCT_H #define CARDSTRUCT_H #include/* 电话类别名称 const char *TelTypeName[] = { "电话", "手机", "办公", "宅电", "内线" }; */ typedef unsigned char BYTE; //下面的宏定义各变量的最大长度 #define MAXLEN_TEL 21 // 电话号码 #define MAXLEN_TELTYPENAME 5 // 电话字段名称 #define MAXLEN_NAME 17 // 姓名 #define MAXLEN_BUSINESS 17 // 职务 #define MAXLEN_COMPANYNAME 41 // 单位名称 #define MAXLEN_EMAL 65 // 邮件地址 #define MAXLEN_COMMENT 129 // 备注信息 #define MAXLEN_RING 33 // 特色震铃 #define MAXLEN_TYPE 9 // 类别名称 #define MAXLEN_TYPECOUNT 10 // 电话字段个数 struct TelStruct_T { BYTE type; char number[MAXLEN_TEL]; }; struct CardStruct_T { char szName[MAXLEN_NAME]; // 姓名 BYTE accLevel; // 免打扰级别 0 VIP 1 普通 2 黑名单 TelStruct_T typeAndNumber[MAXLEN_TYPECOUNT]; // 电话字段名称和号码 char szCompanyName[MAXLEN_COMPANYNAME]; // 单位名称 char szBusiness[MAXLEN_BUSINESS]; // 职务 char szEmail[MAXLEN_EMAL]; // 邮件地址 char szComment[MAXLEN_COMMENT]; // 备注信息 char szRing[MAXLEN_RING]; // 特色震铃 char szType[MAXLEN_TYPE]; // 所属类别名称 //char dummy[]; // 填充字节,为同步程序使用 void PrintSelfInfo (void); }; #define PrintMember(x) printf(#x" = %s\n", x) #define PrintIntMember(x) printf(#x" = %d\n", x) inline void CardStruct_T::PrintSelfInfo (void) { #ifndef NDEBUG printf("***** Card struct information start *****\n"); PrintMember(szName); PrintIntMember(accLevel); for (int i = 0; i < 10; ++i) { printf("teltype = %d : %s\n", typeAndNumber[i].type, typeAndNumber[i].number); } PrintMember(szBusiness); PrintMember(szCompanyName); PrintMember(szEmail); PrintMember(szComment); PrintMember(szRing); PrintMember(szType); printf("***** Card struct information end *****\n"); #endif } extern CardStruct_T *g_curCard; const int TypeOffSetInCard = g_curCard->szType - reinterpret_cast (g_curCard); #endif