结构体内存大小计算
程序员文章站
2024-03-18 08:58:52
...
#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 章节对结构的存储分配进行阅读理解。
推荐阅读
-
结构体内存大小计算
-
【C语言进阶深度学习记录】二十 结构体大小计算与结构体内存布局的详细方法
-
Java Memory Model(JMM) 博客分类: 计算机与 Internet Java多线程JVMJDK数据结构
-
C语言结构体成员偏移量的计算
-
递归计算树结构当前节点包含多少级 博客分类: 算法JAVA基础 递归双重递归计算树结构层级
-
java Object类占用内存大小计算 博客分类: J2SE Object内存
-
Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)
-
自然语言处理及计算语言学相关术语中英对译表 D语言数据结构资讯Social单元测试
-
Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)
-
写一个宏,计算结构体中某变量相对于首地址的偏移和写一个宏,可以将一个整数字的奇数位和偶数位交换