C语言——结构体数组
经常在单片机上应用的的数据结构
结构特点是:
1、编译的时候就可以知道单片机资源是否够用
2、对比链表这种动态申请内存的数据结构,不知道什么时候内存就被申请完了,造成无法预知的后果
下面是我在rt_threat中的简单应用
首先定义一个结构体,然后就可以定义一个结构体数组了
typedef struct _message_bady
{
rt_uint32_t magic;
rt_uint16_t message_type;
rt_uint16_t reserved; //保留字段
} message_bady;
message_bady array_msg[10];//结构体数组
下面是应用的代码
rt_kprintf("sizeof is:%d\r\n",sizeof(array_msg));
for (int var = 0; var < 10; ++var) {
array_msg[var].magic = var;
array_msg[var].message_type = var;
array_msg[var].reserved = var;
}
for (int var = 0; var < 10; ++var) {
rt_kprintf("%d,%d.%d->",array_msg[var].magic,array_msg[var].message_type,array_msg[var].reserved);
}
rt_kprintf("\n");
运行上面的应用代码,展示一下调试打印的信息
\ | /
- RT - Thread Operating System
/ | \ 4.0.2 build Dec 24 2020
2006 - 2019 Copyright by rt-thread team
sizeof is:80
0,0.0->1,1.1->2,2.2->3,3.3->4,4.4->5,5.5->6,6.6->7,7.7->8,8.8->9,9.9->
msh >