C/C++:[4]如何使用共用体(union)
共用体(union)是一种数据格式,它能够存储不同类型的数据,但是只能同时存储其中的一种类型。
![C/C++:[4]如何使用共用体(union)](https://exp-picture.cdn.bcebos.com/ab966c6b0ce265e7fb1a74cc9f23beb9773eb7a9.jpg)
三、共用体的使用2
1、在嵌入式系统开发中,有时需要将一些变量存储在EEPROM中,变量类型若是char、坡纠课柩int就很好办,可是如果要存储float、double类型的变量怎么办呢?这个问题可以用共用体解决:union myfloat{ char i[4]; float j;}Test;因为float是四个字节,因此我们定义一个4个元素的char数组和float公用一段内存,接下来就是EEPROM存取了
2、在程序中要使用 j 的地方使用Test.j就行了,想把 j 存入EEPROM可以这皱诣愚继样:EEPROM_WRITE(0,myfloat.i[0]);EEPROM_WRITE(1,m烤恤鹇灭yfloat.i[1]);EEPROM_WRITE(2,myfloat.i[2]);EEPROM_WRITE(3,myfloat.i[3]);注:上面参数0、1、2、3为EEPROM地址,上面的EEPROM_WRITE只是示意,有时需要对地址使用(void*)进行类型转换
3、想把 j 从EEPROM读出可以这样:myfloat.i[0]=EEPROM_READ(0);myfloat.i[1]=EEPROM_READ(1);myfloat.i[2]=EEPROM_READ(2);myfloat.i[3]=EEPROM_READ(3);然后在程序中继续使用Test.j就可以了是不是很简单呢