什么是正确的变量名称?

时间:2015-05-27 09:51:48

标签: c naming

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

所以这里是如何声明状态变量:

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

  

此类中间变量是否有更好/更准确的技术名称?

实施注意事项:

我之所以决定使用这个中间变量的原因是因为将信道指针i或状态变量传递给每个函数foobar,资源消耗太大, baz,...在性能方面,避免堆栈推送/弹出可以节省实时应用程序的宝贵时间。

3 个答案:

答案 0 :(得分:3)

你在技术上不是影子;你必须定义一个相同的名称的变量来遮蔽它。此外,阴影通常是不受欢迎的,因为粗心使用可能会导致容易混淆。

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

另一个想法可能是temp_channel_status,暗示虽然变量是全局的,但不应将该值视为固定值。

答案 1 :(得分:0)

您可以使用status_localstatus_local_copy

答案 2 :(得分:0)

我想要一个名称,例如work_statusstatus_copy