正确的变量名是什么?
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_status
或 cur_status
。如果您将它用作参数,那么名称将只包含在 for()
中,它也可能是 current
或 cur_item
。
另一个想法可能是 temp_channel_status
,这意味着尽管变量是全局变量,但该值不被认为是固定的。
您可以使用 status_local
,或 status_local_copy
。
我想要一个名字,例如 work_status
或 status_copy
。
在实时嵌入式设备的实现中,每个通道都有一个状态寄存器变量(让我们盲目地假设我的嵌入式设备有多个通道,并且必须为每个通道做一些工作)。
下面是状态变量当前的声明方式:
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_status
或 cur_status
。如果您将它用作参数,那么名称将只包含在 for()
中,它也可能是 current
或 cur_item
。
另一个想法可能是 temp_channel_status
,这意味着尽管变量是全局变量,但该值不被认为是固定的。
您可以使用 status_local
,或 status_local_copy
。
我想要一个名字,例如 work_status
或 status_copy
。