当前位置: 首页 > wzjs >正文

网站建设方案公司任何网络项目开始的第一步

网站建设方案公司,任何网络项目开始的第一步,福州做公司网站,家装设计图纸测试环境:STM32H7R3MDK 5.39AC5 注:PC、PowerPC等环境不适用本文。 一.字节对齐 一般采用自然对齐(默认方式),提高数据存取速度。 采用1字节对齐,变量在内存中无空隙,紧密存储,节省存…

测试环境:STM32H7R3+MDK 5.39+AC5

注:PC、PowerPC等环境不适用本文。

一.字节对齐

        一般采用自然对齐(默认方式),提高数据存取速度。
        采用1字节对齐,变量在内存中无空隙,紧密存储,节省存储空间。另外可配合union,在通信时进行数值(void*)与tx/rx缓冲区(uint8_t*)的相互转换。


1.默认方式

#include <stdint.h>typedef struct {uint8_t A;uint16_t B;uint16_t C;
}Test_T;int main(void)
{Test_T Test={.A=0x11,.B=0x2222,.C=0x3333,};return 0;
}

内存图:

为保证自然对齐,成员在内存中有空隙。

uint16_t成员A占2字节,起始地址0x200003ED%2=1,非2字节对齐,而0x200003EE%2=0,满足对齐条件。

2.强制1字节对齐

#include <stdint.h>#pragma pack(push, 1)
typedef struct {uint8_t A;uint16_t B;uint16_t C;
}Test_T;
#pragma pack(pop)int main(void)
{Test_T Test={.A=0x11,.B=0x2222,.C=0x3333,};return 0;
}

内存图:
变量在内存中紧密排列,无空隙

二.位域

        C语言最小的数据类型是字节(8bit) ,我们只能选择8/16/32bit去存储数据。在某些应用中,数据需要更灵活的数据类型来存储,如开关量0/1只需要1bit来存储;考试成绩0~100只需要7bit来存储。

        通过位域,可在结构体实现指定bit数的存储。且成员数据类型只能为整型。

typedef struct {uint8_t 	A:1;uint16_t 	B:4;uint16_t 	C:7;
}Test_T;Test_T Test={
.A=0b1,
.B=0b0000,
.C=0b1111111,
};

        此时Test_T的各成员数据类型(uint8_t、uint16_t)的作用,是限制位域成员的最大bit数,以及该位域的值应被如何解释。

         在未指定1字节对齐时(#pragma pack(push, 1)),位域结构体在内存中仍有空隙,对齐方式与成员类型以及位域大小有关。详见博文(C语言笔记)位域的详解使用(含内存对齐)。所以在需要形成连续比特流的场合,需要位序配合1字节对齐使用。

                注:Test_T的各成员的大小是非字节倍数的,无法用sizeof(Test_T.A)计算空间。但由各位域成员组成的结构体变量,仍可用sizeof(Test_T)计算大小。Test_T的各成员也无法通过指针操作。


        

三.联合体

        在通信中使用,可将有意义的数值转为字节缓冲区,即可实现快速组帧。

四.三者配合使用

如下有效利用资源,实现通信协议对数据的高度压缩。


文章转载自:

http://CfBvIM7x.mprky.cn
http://pEX88Y0d.mprky.cn
http://N2FsDmRG.mprky.cn
http://BbvY3dkn.mprky.cn
http://DPrZZ1LD.mprky.cn
http://8ILQVscu.mprky.cn
http://yLss3ajK.mprky.cn
http://DxW6i0hV.mprky.cn
http://QeOJWwSh.mprky.cn
http://IdbzjFT8.mprky.cn
http://SwVlSJOQ.mprky.cn
http://TX0TPlQL.mprky.cn
http://ocUTfBc8.mprky.cn
http://I7m5vCSr.mprky.cn
http://kZ2Wj4bR.mprky.cn
http://Gw14tSMl.mprky.cn
http://vNJS4wJN.mprky.cn
http://qB51XeXR.mprky.cn
http://gETDWLeU.mprky.cn
http://MxokecnR.mprky.cn
http://pfW44Xof.mprky.cn
http://mRtUbFAD.mprky.cn
http://h8tw5tBy.mprky.cn
http://1KBRdv7k.mprky.cn
http://0yLGPN93.mprky.cn
http://zXm6zd6v.mprky.cn
http://uYCZsFko.mprky.cn
http://d5DwhczW.mprky.cn
http://QMhmDazu.mprky.cn
http://j2JUE2bR.mprky.cn
http://www.dtcms.com/wzjs/637588.html

相关文章:

  • 个人网站备案入口做明星网站打广告
  • 学校网站信息化建设工作心得百度网站排名 查询
  • 校园网站建设平台h5制作网页
  • 便宜做外贸网站秦皇岛 网站
  • 广东网页制作网站wordpress 红包
  • 虹口北京网站建设网站开发公司源码
  • 做ppt好用的网站杭州网站建设公司联系方式
  • 义乌网站制作电话公司介绍ppt范例
  • 长春专业做网站的公司排名网页版的微信
  • 检测网站访问量1688阿里巴巴官网
  • 免费建设淘客网站南宁网站设计要多少钱
  • 网站logo图怎么做工作计划如何写
  • 四川省建设安全管理协会网站wordpress开发架构
  • 阜阳建设部网站广东东莞邮政编码
  • 爱心捐赠网站怎么做免费站长统计工具
  • 电脑和手机都能浏览的网站开发网站怎么优化推广
  • 网站建设需要学习课程网站建设方案策划书前言
  • 网站首页横版图怎么做emeinet亿玫网站建设
  • 简洁公司网站源码网站制作语言
  • 创建网站的价格制作小企业网站
  • 洛阳天艺网络做网站怎么样事件营销ppt
  • 国内优秀公司网站做一件代发哪个网站好
  • 网站营销公司哪家好西安网页设计设计培训
  • 网站更新维护怎么做网站制作的内容什么好
  • vs网站开发源码诸城个人网站建设
  • 视频网站做短视频网站优化建设郑州
  • 网站开发岗位需求分析wordpress按钮弹窗
  • 正规网站建设详细方案做电商网站需要注册什么公司
  • 橙 网站做网站建设的网络公司经营范围怎样填
  • 公司网站建设公司排名仿站网站域名