我正在尝试用 C 语言记录一个进程,我需要一个更简单的解决方案。
我有一个状态字节,其中的每一位都表示某个设备是否打开。每个设备都有固定的功耗率,我想根据其开/关状态记录用电量。
所以,我有一个名为 equip_totals 的结构和作为成员的使用率,equip1...
struct {
unsigned int equip1;
unsigned int equip2;
...
} equip_totals;
为了更新,我使用了一个我想简化的相当长的函数
void update_equip_status(char *equip_status)
{
if (&equip_staus = 0x01)
equip_totals.equip1 = consumption_rate*time;
if...
}
如果您有任何想法,我将不胜感激。
最佳答案
使用一个简单的数组:unsigned int equip_totals[8];
此外,简单地按值传递 equip_status
会更好。
for(int i=0; equip_status != 0; i++, equip_status /= 2)
if (equip_status & 1)
equip_totals[i] = consumption_rate*time;
关于计算多个项目的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6866236/