工作中写过这样一段代码:
if((dev.protocal&0xf0)>=0x30)------------------------------------------------------------------条件A
if(uart2plc_auto_flood(trace,(my_u8 *)(&seq_n),0x02,F1))---------------------------条件B,动作1
return 0;--------------------------------------------------------------------------------------动作2
else
if(uart2plc_auto_route(trace,0x02,F1))--------------------------------------------------条件C,动作3
return 0;-------------------------------------------------------------------------------------动作4
为了代码好看,就没有加花括号同时对于每一个if没有添加它对应的else语句。本意是条件A不满足就执行就执行动作3,而事实上当条件A不满足时,就什么事情也不干了。究其原因在于,if和else的配对上边。if else配对是从下向上