正确的变量名是什么?

What would be the correct variable name?

在实时嵌入式设备的实现中,每个通道都有一个状态寄存器变量(让我们盲目地假设我的嵌入式设备有多个通道,并且必须为每个通道做一些工作)。

下面是状态变量当前的声明方式:

struct channel_status status[NCHANNELS];

性能方面,最好使用一个中间全局变量,该变量是所选通道的 status 变量的副本。

示例:

struct channel_status status_shadow;

void some_work() {
    for(channel = 0; channel < NCHANNELS; channel++) {
        status_shadow = status[channel]; 
        foo(); // Function that use the status_shadow as global
        bar(); // "
        baz(); // "
        status[channel] = status_shadow;
}

我不是在讨论实现,也不是在讨论使用指针而不是变量的可能性。我的问题是关于中间变量的名称。

我选择 status_shadow 是因为我认为我正在做某种 shadowing

Is there a better/more accurate technical name for such intermediate variable ?

实施注意事项:

我决定使用这个中间变量的原因是因为将通道指针i或状态变量传递给每个函数foo、[=16=太耗资源了], baz, ... 在性能方面避免堆栈 push/pop 可以在实时应用程序中节省一些宝贵的时间。

从技术上讲,您没有跟随;您必须定义一个具有相同 name 的变量来隐藏它。此外,阴影通常不受欢迎,因为粗心的使用可能导致容易混淆。

您正在做的是将 当前项目 用于您的周期,因此适合的名称可以是 current_statuscur_status。如果您将它用作参数,那么名称将只包含在 for() 中,它也可能是 currentcur_item

另一个想法可能是 temp_channel_status,这意味着尽管变量是全局变量,但该值不被认为是固定的。

您可以使用 status_local,或 status_local_copy

我想要一个名字,例如 work_statusstatus_copy