我一直在努力理解为Z80微控制器编写的C代码.编码器是自学成才,不幸的是,代码缺乏风格和可读性.除了充满goto语句的代码之外,整个地方的间距和对齐也非常混乱.
我已经看到一些IF ELSE声明如下:
if(value1==1){
code();
}
else
if(value2==1) {
othercode();
}
Run Code Online (Sandbox Code Playgroud)
这是一样的:
1.
if(value1==1){
code();
}
else if(value2==1) {
othercode();
}
Run Code Online (Sandbox Code Playgroud)
要么
2.
if(value1==1){
code();
}
if(value2==1) {
othercode();
}
Run Code Online (Sandbox Code Playgroud)
所以在我提交更改所有代码之前,我最好检查一下.
代码1与原始代码完全相同.你刚刚更改了缩进.
代码2的行为与原始代码不同.
代码1表示if value1 == 1为true,执行code()else检查if是否value2 == 1为true,然后执行othercode().
而
代码2表示if value1 == 1为true,执行code()并现在检查是否value2 == 1为true,然后执行othercode().
因此简而言之,在第一种情况else下,如果if块计算结果为true,则不会检查条件.在第二种情况下,if将在所有情况下检查两个s.