【发布时间】:2013-06-16 15:17:53
【问题描述】:
我从事安全关键型应用程序开发工作。最近,作为一名代码审查员,我抱怨如下所示的编码风格,但无法提出强有力的反对意见。那么反对这种变量冗余/重复的好论据是什么,我正在寻找可能导致问题或可能失败的测试用例的案例,而不仅仅是编码风格。
//global data
// global data
int Block1Var;
int Block2Var;
...
//Block1
{
...
Block1Var = someCondition; // someCondition is an logical expression
...
}
//Block2
{
...
Block2Var = Block1Var; // Block2Var is an unconditional copy of Block1Var
...
}
【问题讨论】:
-
这是针对单线程应用的,没有并发访问等。
-
这是在嵌入式环境中吗?
-
是的,对于单线程高度关键的嵌入式产品。并且代码需要符合DO178b A级标准
-
论点是过多的变量范围会污染命名空间,并可能导致错误。
-
如果你在一个资源受限的嵌入式系统上工作并且你分配了许多变量或大尺寸的结构,然后将它们保持在超过它们的“到期日期”的范围内,你可能会遇到内存问题。你肯定会遇到可读性问题,而且很容易引入错误。
标签: c code-standards safety-critical