计算多个项目的值

标签 c function

我正在尝试用 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/

相关文章:

javascript - 调用带有参数的构造函数

使用 Boost 函数和 C++ 类方法的 C++ 回调

function - 在 D3 的函数文字中使用 "d"?

c - 在 C 中,有哪些方法可以使函数在其调用之间共享数据?

c++ - 车课(第一次上课)

c - 形式论证中如何修改结构变量

c++ - 为什么 MSVC 的自动矢量化不使用 AVX2?

c - 从主结构中提取子结构以创建线程

c - 将函数返回值类型转换为指针类型

c++ - libavcodec,如何对不同帧率的视频进行转码?