- 1
- 2
- 3
- 4
- 5
固件结构体的正确用法与常见坑
资料介绍
固件里的结构体:用得好代码清晰,用不好一堆坑 一、结构体是固件代码组织的重要工具 结构体(struct)在固件里用来组织相关的数据(比如设备状态、配置参数、数据包),用得好代码清晰、好维护;用得不好,会有一堆坑(内存浪费、对齐问题、字节序问题、拷贝问题)。 很多人写固件,要么不会用结构体(一堆散乱的变量),要么乱用结构体(处处都是、不管内存和兼容性)。这篇文章讲结构体在固件里的正确用法和常见坑。 二、结构体的好处 组织数据:相关的数据放一起(设备状态、配置),代码清晰 封装:把数据和操作它的逻辑关联起来 可读性:结构体字段名比散乱变量名清晰 三、结构体的常见坑 3.1 内存对齐浪费 结构体的成员之间可能有"填充字节"(对齐),浪费内存。比如一个结构体里放char、int、char,可能因为对齐占了很多不必要的空间。对RAM紧张的MCU,要注意对齐浪费。 解决:把结构体成员按"对齐要求从大到小排列"(大的在前),减少填充。 3.2 字节序问题 如果结构体要跨设备/跨平台传输(比如通过网络、串口发送),结构体的内存布局(字节序、对齐、填充)在不同平台可能不同,导致传输的数据解析不对。 解决:跨平台传输的数据,别直接用结构体(用序列化/反序列化,或者用明确字节序的字节数组)。 3.3 结构体拷贝 直接把结构体赋值(拷贝)可能不浅拷贝(如果含指针、动态数据),或者结构体很大拷贝慢。 解决:大结构体、含指针的结构体,拷贝要谨慎(考虑深拷贝、或避免拷贝)。 3.4 结构体大小 结构体太大会占内存(尤其是全局结构体)。要合理设计(只放需要的字段)。
部分文件列表
| 文件名 | 大小 |
| 固件结构体的正确用法与常见坑.docx | 38K |
最新上传
-
江岚 打赏100.00元 1天前
用户:潇潇江南
-
他山之石可攻玉 打赏50.00元 1天前
用户:烟雨
-
21ic下载 打赏1.00元 1天前
用户:王小琪
-
yahuang001 打赏3.00元 3天前
-
yahuang001 打赏1.00元 3天前
-
zhongshaoxiong 打赏3.00元 3天前
-
他山之石可攻玉 打赏60.00元 3天前
用户:烟雨
-
江岚 打赏210.00元 3天前
用户:潇潇江南
-
江岚 打赏100.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:gsy幸运
-
21ic下载 打赏310.00元 3天前
用户:zhengdai
-
21ic下载 打赏310.00元 3天前
用户:江岚
-
21ic下载 打赏210.00元 3天前
用户:潇潇江南
-
21ic下载 打赏60.00元 3天前
用户:他山之石可攻玉
-
21ic下载 打赏60.00元 3天前
用户:烟雨
-
21ic下载 打赏60.00元 3天前
用户:w178191520
-
21ic下载 打赏60.00元 3天前
用户:w993263495
-
21ic下载 打赏110.00元 3天前
用户:xzxbybd
-
21ic下载 打赏60.00元 3天前
用户:zq_1943
-
21ic下载 打赏20.00元 3天前
用户:kk1957135547
-
21ic下载 打赏20.00元 3天前
用户:sun2152
-
21ic下载 打赏20.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏20.00元 3天前
用户:xuzhen1
-
21ic下载 打赏20.00元 3天前
用户:w1966891335
-
21ic下载 打赏35.00元 3天前
用户:有理想666
-
21ic下载 打赏15.00元 3天前
用户:nuaanuaa111
-
21ic下载 打赏20.00元 3天前
用户:liqiang9090
-
21ic下载 打赏15.00元 3天前
用户:ningmengge
-
21ic下载 打赏10.00元 3天前
用户:mulanhk
-
21ic下载 打赏5.00元 3天前
用户:asys
-
21ic下载 打赏10.00元 3天前
用户:舞蹈荀彧
-
21ic小能手 打赏5.00元 3天前
资料:磁编码器开源方案
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏50.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏8.00元 3天前




全部评论(0)