考虑下面程序片段:
if (x == 0)
if (y == 0) error();
else
{
z = x + y;
f(&z);
}
C语言有这样的规则,else始终与同一对括号内最近的未匹配的 if 结合。
那么上述的代码逻辑等于下面:
if (x == 0)
{
if (y == 0)
error();
else
{
z = x + y;
f(&z);
}
}
你的代码逻辑是这样吗?