#include<stdio.h>
typedef unsigned long u32;
typedef unsigned int u16;
typedef unsigned char u8;
typedef struct{
u8 flag;
u16 BatVoltage;
u32 InfraredCnt;//红外检测计数
}T_his_data_item_a;
typedef struct{
u32 InfraredCnt;//红外检测计数
u16 BatVoltage;
u8 flag;
}T_his_data_item_b;
typedef struct{
u8 flag[1];
u16 BatVoltage;
u32 InfraredCnt;//红外检测计数
}T_his_data_item_c;
typedef struct{
u8 flag[2];
u16 BatVoltage;
u32 InfraredCnt;//红外检测计数
}T_his_data_item_d;
typedef struct{
u8 flag[3];
u16 BatVoltage;
u32 InfraredCnt;//红外检测计数
}T_his_data_item_e;
typedef struct{
u8 flag[4];
u16 BatVoltage;
u32 InfraredCnt;//红外检测计数
}T_his_data_item_f;
typedef struct{
u8 flag[5];
u16 BatVoltage;
u32 InfraredCnt;//红外检测计数
}T_his_data_item_g;
typedef struct{
u8 flag[6];
u16 BatVoltage;
u32 InfraredCnt;//红外检测计数
}T_his_data_item_h;
typedef struct{
u8 flag;
u16 BatVoltage[1];
u32 InfraredCnt;//红外检测计数
}T_his_data_item_i;
typedef struct{
u8 flag;
u16 BatVoltage[2];
u32 InfraredCnt;//红外检测计数
}T_his_data_item_j;
typedef struct{
u8 flag;
u16 BatVoltage[3];
u32 InfraredCnt;//红外检测计数
}T_his_data_item_k;
typedef struct{
u8 flag;
u16 BatVoltage[4];
u32 InfraredCnt;//红外检测计数
}T_his_data_item_L;
int main()
{
printf("%d\r\n", sizeof(T_his_data_item_a));
printf("%d\r\n", sizeof(T_his_data_item_b));
printf("%d\r\n", sizeof(T_his_data_item_c));
printf("%d\r\n", sizeof(T_his_data_item_d));
printf("%d\r\n", sizeof(T_his_data_item_e));
printf("%d\r\n", sizeof(T_his_data_item_f));
printf("%d\r\n", sizeof(T_his_data_item_g));
printf("%d\r\n", sizeof(T_his_data_item_h));
printf("====================\r\n");
printf("%d\r\n", sizeof(T_his_data_item_i));
printf("%d\r\n", sizeof(T_his_data_item_j));
printf("%d\r\n", sizeof(T_his_data_item_k));
printf("%d\r\n", sizeof(T_his_data_item_L));
system("pause");
}
结构的存储分配是一个需要细心去处理的一个问题。可以最大化的利用内存空间。
可以参考C和指针 10.3 章节对结构的存储分配进行阅读理解。