历史上的今天
返回首页

历史上的今天

今天是:2025年03月23日(星期日)

正在发生

2020年03月23日 | 关于结构体/联合体 字节对齐及位域操作出现的问题

2020-03-23 来源:eefocus

使用的开发环境为MAPLAB X IDE  1字节对齐的实现如下


#pragma pack(1)

 

typedef union

 

{

 

      uint8_t buf[21];

 

      struct  Message

 

      {

 

           uint8_t  repeat : 2;

 

           uint8_t  msgid : 6;

 

           ...... 

 

      }

 

}

#pragma pack()


上面的操作为对联合体的1字节对齐,解决了结构体的对齐是根据数据类型最大的变量对齐的情况节省了空间的分配,这里也做了位域的操作将8位拆分为2个变量其中一个占8位里的2bit另外一个占6bit。


位域操作的目的是为了更合理的管理变量分配的内存情况,但是使用位域时有以下几个注意点:


1.一个位域必须存储在同一个字节中,不能跨两个字节。如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域。也可以有意使某位域从下一单元开始。例如:


struct bs

{

    unsigned a:4

    unsigned :0

    unsigned b:4

    unsigned c:4

}


在这个位域定义中,a占第一字节的4位,后4位填0表示不使用,b从第二字节开始,占用4位,c占用4位。


2.由于位域不允许跨两个字节,因此位域的长度不能大于一个字节的长度,也就是说不能超过8位二进位。


3.位域可以无位域名,这时它只用来作填充或调整位置。无名的位域是不能使用的。例如:


struct k

{

    int a:1

    int :2

    int b:3

    int c:2

};


从以上分析可以看出,位域在本质上就是一种结构类型,不过其成员是按二进位分配的。

推荐阅读

史海拾趣

Henkel公司的发展小趣事

HellermannTyton公司在电子行业的发展历程中,积累了丰富的经验和成就,以下是五个与其发展相关的事实性故事:

1. 创立与初期发展

HellermannTyton的起点可以追溯到其成立之初。作为一家专注于紧固、连接、布线、保护和标识解决方案的全球制造商,HellermannTyton在创立时就明确了其市场定位和技术方向。公司凭借其创新的产品和优质的服务,在电子行业迅速站稳脚跟。初期,公司通过不断研发和改进产品,满足了市场对高品质电子配件的需求,逐步建立起稳定的客户群体和市场基础。

2. 全球化布局与扩张

随着业务的不断发展,HellermannTyton开始实施全球化战略。公司在全球范围内设立办事处和生产基地,以更好地服务全球客户。这一战略不仅提升了公司的市场影响力,还促进了产品的国际化销售。目前,HellermannTyton在30多个国家设有办事处,并拥有稳定的财务状况和良好的行业前景。其全球化布局为公司的持续发展和创新提供了强有力的支持。

3. 技术创新与产品研发

HellermannTyton一直将技术创新视为企业发展的核心驱动力。公司投入大量资源进行产品研发和技术创新,不断推出符合市场需求的新产品。例如,在数据和网络技术领域,HellermannTyton开发了领先的系统,被认为是行业中的领军者。这些创新产品不仅提升了公司的市场竞争力,还为客户提供了更加高效、可靠的解决方案。

4. 中国市场的深耕与发展

在中国市场,HellermannTyton同样取得了显著的成绩。海尔曼太通(无锡)电器配件有限公司作为HellermannTyton在中国的子公司,自1997年成立以来,一直致力于为全球客户设计、生产电线装配及网络连接产品。公司位于中国无锡新加坡工业园,拥有先进的生产设备和完善的质量管理体系。在中国市场的深耕与发展过程中,HellermannTyton凭借其优质的产品和服务赢得了广泛的认可和好评。

5. 多元化业务与可持续发展

HellermannTyton的业务范围不仅限于紧固、连接、布线等传统领域,还积极拓展多元化业务。公司致力于为客户提供全方位的解决方案,以满足不同行业的需求。同时,HellermannTyton还注重可持续发展,通过采用环保材料和绿色生产方式,减少对环境的影响。这种多元化业务和可持续发展的战略为公司的长期发展奠定了坚实的基础。

以上五个故事展示了HellermannTyton在电子行业中的发展历程和成就,体现了其作为全球领先制造商的实力和影响力。

广东长利光电(Changli Optoelectronic)公司的发展小趣事

随着公司的发展,广东长利光电逐渐意识到质量管理的重要性。为了提升产品质量,公司决定引进ISO9001质量管理体系。在实施过程中,公司对生产流程进行了全面的梳理和优化,确保了每一个生产环节的严格控制。这一举措不仅提升了产品的合格率,还为公司赢得了更多的客户信任和市场份额。

Advanced Thermal Products Inc公司的发展小趣事

ATP公司深知品质是企业生存和发展的基石。因此,他们建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司注重品牌建设,通过广告宣传、参加展会等方式提升品牌知名度和美誉度。这些举措使得ATP公司在市场上逐渐树立了良好的品牌形象。

BOCA公司的发展小趣事

BOCA公司最初是一家小型电子元件制造商,面临着激烈的市场竞争。然而,公司始终坚持研发创新,投入大量资源于新技术的研究。终于,在一次偶然的实验中,BOCA的研发团队成功开发出了一种新型的半导体材料,这种材料在性能上远超当时的行业标准。这一技术突破让BOCA迅速在行业中崭露头角,订单量激增,公司规模迅速扩大。

EPCOS/TDK公司的发展小趣事

EPCOS,全称爱普科斯(EPCOS AG),其历史可以追溯到1989年。当时,西门子松下有限公司(Siemens Matsushita Components)在德国慕尼黑成立,作为西门子与松下的合资公司,集中了两大电子巨头的优势资源。这家公司起初专注于电子元器件的研发与生产,凭借其卓越的技术和品质,迅速在市场中占得一席之地。经过数十年的发展,EPCOS逐渐壮大,产品线涵盖了电容器、电感器、电阻器等众多电子元器件,并在全球范围内建立了广泛的销售网络。

EMBEST公司的发展小趣事

随着国内市场的逐步稳固,EMBEST开始寻求更广阔的发展空间。XXXX年,EMBEST的开发工具成功进入国际市场,并获得了多家芯片公司的认可,成为他们的第三方工具伙伴。这一举措不仅提升了EMBEST的品牌影响力,也为其带来了更多的商业机会。EMBEST凭借过硬的技术实力和优质的服务,逐渐在国际市场上崭露头角。

问答坊 | AI 解惑

电容电感滤波原理

整流电路的输出电压不是纯粹的直流,从示波器观察整流电路的输出,与直流相差很大,波形中含有较大的脉动成分,称为纹波。为获得比较理想的直流电压,需要利用具有储能作用的电抗性元件(如电容、电感)组成的滤波电路来滤除整流电路输出电压中的脉 ...…

查看全部问答>

VC++定时器的复位问题

VC++中有可以复位定时器的API吗? killTimer(3);后再SetTimer(3,100,NULL); 可以复位吗? 主要是第一个问题。 谢谢…

查看全部问答>

WinCe6运行程序后系统变慢

    俺的系统很奇怪,运行某些程序,比如摄像头抓取的程序、CorePlayer等之后系统就变慢,焦点从“我的设备”移开时图标会呈现一杠一杠的样子。     这是为啥呢?有人遇到过吗?…

查看全部问答>

关于windows矢量字库的文件格式?

请问windows矢量字库的文件格式,那里有这方面的资料!…

查看全部问答>

Redboot下写入数据在内核读取出来数据不一致?

在Redboot下更新zImage文件,写入到1M,启动内核后,使用dd if=/dev/mtdblock1 of=kernel.img bs=512 count=4578 读取nand flash该区域内容,使用ultraedit比较zImage和kernel.img,数据有不一样的地方,只是个别字节不一样。 同样,在内核下写入c ...…

查看全部问答>

如何使用VC实现多路视频采集

以前只搞过VFW单路视频采集   现在要实现多路采集一下没什么想法了 希望各位多多指教  给点思路   谢谢 …

查看全部问答>

哪位大虾用过hs5104解码

hs5104解码如何判断引导码…

查看全部问答>

STM32,IO默认状态???

                                 有谁知道IO的默认状态,刚上电,还没有初始化IO时钟,这时IO是什么样的状态?…

查看全部问答>

[TI原创]LM3S1138 测量频率、多路电压测量、信号发生

刚刚睡醒,到坛子里面逛逛,发个帖子,读书的时候弄的测量外界信号频率、多路电压测量、方波信号发生全部交互采用上位机方式实现,硬件电路未作前级的信号调理,主要是软件上实现基本功能,能够实现扩展,给需要的人参考需要设置电脑分辨率为1152*8 ...…

查看全部问答>