int function(uint8 *pucBuf, int lLen)
{
int a = 0;
int iIndex = 0;
while(lLen)
{
a = 0;
...
...
if (pucBuf[iIndex] == 0xCC)
{
a = 0;
...
}
else
{
a = 4;
...
}
{
int a = 0;
int iIndex = 0;
while(lLen)
{
a = 0;
...
...
if (pucBuf[iIndex] == 0xCC)
{
a = 0;
...
}
else
{
a = 4;
...
}
...
if (a)
{
...
}
...
lLen -= a + 4;
}
return 0;
}
}
"a = 0"语句
可以放在红色区域或蓝色区域,代码意义不变。但出于对好的编程风格的追求,最好放在红色区域(蓝色区域此语句删除),以强调对称性。若红色区域和蓝色区域都有语句,又有点冗余。
因为这是个while循环,之后用到a时,我们会怀疑a之前的状态是否清除,这样,我们(用到a处)从下往上找,找到了绿色区域,正好有红色区域与之对应(同为if、else分支),我们就知道a因为条件被赋值,或清零。