位域结构体变量在主流控制器(ARM/DSP等)编程使用时注意事项
很多人搞电子软件编程的人都是从sram很紧缺的51单片机或其他低端单片机入门的。大家都知道,51单片机的有个可bit寻址的空间,而对应的开发环境KEIL C51当然也支持bit变量。随着电子芯片产品的发展,现在的主控器林林种种,无论是SRAM空间或者是COED空间,都有了相当大的提升,现在的sram动不动就几k,几十k。而51单片机的可位寻址功能没有得到继承,已经永久的成为古董。而在实际编程应用中,有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。比如很多的变量,特别是标志位,都不需要占用一个byte的空间。常见的如:只占用一bit的的bool变量(0或1)。那么,假如不是51单片机编译环境,而又为了省SRAM存储空间,需要这种不足一个byte空间的变量,又怎么办呢?位域结构体派上用场了。位域结构体,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。