【目的】
定义一个结构体类,其中的成员变量数组长度不定,根据实例化的对象指定长度,所以想到用指针实现
【现状】
指针可以指向任意长度数组,但结构体类只分配指针本身4字节长度,所以无法扩展
1 /** 2 *************************************************************************************************** 3 * 4 * @FileName Data structure of device 5 * 6 * @Editor Skullboyer 7 * 8 * @EditTime 2017-12-27 9 * 10 * @Version V0.1 11 * 12 * @Note 13 * 14 *************************************************************************************************** 15 */ 16 17 18 /* Define the data structure */ 19 typedef struct 20 { 21 uint8_t Msg_Head; /* 消息标识头 */ 22 uint16_t Msg_ID; /* 消息 ID */ 23 uint16_t Msg_Prop; /* 消息体属性 */ 24 uint8_t Term_Phone[6]; /* 终端手机号 */ 25 uint16_t Msg_SwiftNum; /* 消息流水号 */ 26 void *Message; /* 消息体 */ 27 uint8_t Msg_CRC; /* 校验码 */ 28 uint8_t Msg_Tail; /* 消息标识尾 */ 29 }DATA_s; 30 31 /* Instantiated objects ---------------------------------*/ 32 DATA_s sMedia; 33 34 /* GPS structure */ 35 uint8_t uGPS_Data[28]; 36 DATA_s sGPS = 37 { 38 0x7E; 39 0x0200; 40 0x****; 41 0x**, 0x**, 0x**, 0x**, 0x**, 0x**; 42 0x****; 43 uGPS_Data; 44 0x**; 45 0x7E; 46 } 47 48 /* TMPS structure */ 49 uint8_t uTMPS_Data[1024]; /* 最大支持1024个轮胎 10bit */ 50 DATA_s sTMPS = 51 { 52 0x7E; 53 0x0205; 54 0x****; 55 0x**, 0x**, 0x**, 0x**, 0x**, 0x**; 56 0x****; 57 uTMPS_Data; 58 0x**; 59 0x7E; 60 } 61 62 /* POSE structure */ 63 uint8_t uPOSE_Data[28]; 64 DATA_s sPOSE = 65 { 66 0x7E; 67 0x0206; 68 0x****; 69 0x**, 0x**, 0x**, 0x**, 0x**, 0x**; 70 0x****; 71 uPOSE_Data; 72 0x**; 73 0x7E; 74 } 75 76 /* OBD structure */