返回EnergyMeterReadingsArray[0].number的类型应为SensorReadings还是float?
问题解答
你定义的联合体代码如下:
typedef union { float number; uint8_t bytes[4]; } SensorReadings;
对应的数组定义:
SensorReadings EnergyMeterReadingsArray[6];
要返回EnergyMeterReadingsArray[0].number,返回类型应该设为float。
原因很明确:EnergyMeterReadingsArray[0].number本身就是float类型的成员,你要返回的是这个具体的浮点数值,用float作为返回类型完全匹配需求。如果用SensorReadings作为返回类型,返回的是整个联合体对象,这和你要返回的目标值语义不符,属于冗余操作。
内容的提问来源于stack exchange,提问作者user1584421
相关产品推荐
相关产品推荐

