一个if括号里的条件判断太多,改变方法

1.并列关系,可以用两种方法

	if(0xF0 ==rx_buf[0]&&0xF0 ==rx_buf[1]&&0xF0 ==rx_buf[2]&&0xF0 ==rx_buf[3]&&0xF0 ==rx_buf[4]&&0xF0 ==rx_buf[5])
	{

		About();
	}

(1). 拆分成几个if,还是太长,用第二种方法

	{
	  	if(0xF0 ==(rx_buf[0]&0xFF) && 0xF0 == (rx_buf[1] &0xFF) )
		if(0xF0 ==(rx_buf[2]&0xFF) && 0xF0 == (rx_buf[3] &0xFF) )
		{

			   About();
		}
	}

(2). 条件不成立时跳过后面的判断

	{
		if(0xF0 !=(rx_buf[0]&0xFF)
			return;
		if(0xF0 !=(rx_buf[1]&0xFF)
			return;
		if(0xF0 !=(rx_buf[2]&0xFF)
			return;
		if(0xF0 !=(rx_buf[3]&0xFF)
			return;
		About();
		
	}

2.或关系,可以用两种方法

(1). 拆分成几个if,也可以把上面方法(2)按照这样写。

int ReceiveUI()  
{
	u8 b=0;
	
	if(!IF_SLUI_DIS)
	{

		if(IF_DMXIN_OK)//11
		{
			SET_SLUI_DIS;
			//Event_CLR(EVENT_LEVE_DISP);// 
			// ClrBits(WL_ui,BIT2);
			// gSelected=0;
			// submenu_Set(menu4_SET.Select_arrow,0);
			b=1;
		}
	}
	
	if(GetBits(DMX_WL_ui,BIT2))
	{    
		//Event_CLR(EVENT_LEVE_DISP);// 
		// ClrBits(WL_ui,BIT2);
		// gSelected=0;
		// submenu_Set(menu4_SET.Select_arrow,0);
		b=1;
	}

	if(b)
	{
		Event_CLR(EVENT_LEVE_DISP);// 
		ClrBits(WL_ui,BIT2);
		gSelected=0;
		submenu_Set(menu4_SET.Select_arrow,0);
	}

return b;  
}

(2). 使用goto,和上面同样的效果,这样被封印的goto又被用起来了

void fun()  
{  
/*  
	if((SYSDATA_HEADER_DATA!=sysdata_header)||(0xAA!=sysdata.header)||Check_ROM_date() ||0==sysdata.cct)  
	{
		sysdata_header=SYSDATA_HEADER_DATA;
		itemInfo_Reboot();
    	sysdata_save();
		// while (1);		
		
	} */  

	if(SYSDATA_HEADER_DATA!=sysdata_header)
		goto SYSInit;
	if(0xAA!=sysdata.header)
		goto SYSInit;
	if(Check_ROM_date() )
		goto SYSInit;
	if(0==sysdata.cct||0xFFFF==sysdata.cct)
		goto SYSInit;

	return;

SYSInit:
	sysdata_header=SYSDATA_HEADER_DATA;
	itemInfo_Reboot();
	sysdata_save();
	// while (1);		
		
return;  
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值