打印

请教如下 C语言哪个 执行效率高?

[复制链接]
1799|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电子马甲|  楼主 | 2010-5-8 11:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
switch(MenuGrade) //读取菜单状态
  {
     case 0x01: menu0();  //;0级菜单
       break;
     case 0x02: menu1();   //;1级菜单
       break;                                                  
     case 0x04: menu2();   //;2级菜单
       break;   
     case 0x08: menu3();  //;3级菜单
       break;                                 
     case 0x10: menu4();  //;4级菜单
       break;
     case 0x20: menu5();   //;5级菜单
       break;
     case 0x40: menu6();//;6级菜单
       break;
     case 0x80: menu7();   //;7级菜单
       break;
     case 0x100: menu8();      //;8级菜单
       break;
     default:
       break;
  }  
  
  if(MenuGrade&0x01)menu0();  //;0级菜单
  if(MenuGrade&0x02)menu1();   //;1级菜单
  if(MenuGrade&0x04)menu2();   //;2级菜单  
  if(MenuGrade&0x08)menu3();  //;3级菜单
  if(MenuGrade&0x10)menu4();  //;4级菜单
  if(MenuGrade&0x20)menu5();   //;5级菜单
  if(MenuGrade&0x40)menu6();//;6级菜单
  if(MenuGrade&0x80)menu7();   //;7级菜单
  if(MenuGrade&0x100)menu8();     //;8级菜单

相关帖子

沙发
电子马甲|  楼主 | 2010-5-8 11:09 | 只看该作者
switch(MenuGrade) //读取菜单状态
  {
     case 0x01: menu0();  //;0级菜单
       break;
     case 0x02: menu1();   //;1级菜单
       break;                                                  
     case 0x04: menu2();   //;2级菜单
       break;   
     case 0x08: menu3();  //;3级菜单
       break;                                 
     case 0x10: menu4();  //;4级菜单
       break;
     case 0x20: menu5();   //;5级菜单
       break;
     case 0x40: menu6();//;6级菜单       
       break;
     case 0x80: menu7();   //;7级菜单       
       break;
     case 0x100: menu8();      //;8级菜单       
       break;
     default:
       break;
  }  
  
  if(MenuGrade&0x01)menu0();  //;0级菜单
  if(MenuGrade&0x02)menu1();   //;1级菜单
  if(MenuGrade&0x04)menu2();   //;2级菜单  
  if(MenuGrade&0x08)menu3();  //;3级菜单
  if(MenuGrade&0x10)menu4();  //;4级菜单       
  if(MenuGrade&0x20)menu5();   //;5级菜单
  if(MenuGrade&0x40)menu6();//;6级菜单       
  if(MenuGrade&0x80)menu7();   //;7级菜单
  if(MenuGrade&0x100)menu8();     //;8级菜单

使用特权

评论回复
板凳
电子马甲|  楼主 | 2010-5-8 11:17 | 只看该作者
用的 CM3 内核

使用特权

评论回复
地板
epsmc| | 2010-5-8 14:28 | 只看该作者
当然散转快。

使用特权

评论回复
5
ejack| | 2010-5-8 16:56 | 只看该作者
LZ举的两个例子不等价
没法比

使用特权

评论回复
6
wangxingwu-jlu| | 2010-5-8 19:26 | 只看该作者
感觉用函数指针最快

使用特权

评论回复
7
李冬发| | 2010-5-8 21:51 | 只看该作者
要看编译器厂家,这个是谁都没法控制的。

使用特权

评论回复
8
zq1987731| | 2010-5-9 10:43 | 只看该作者
两种方法不等价,前者只能执行其中特定一项菜单功能
后者...如果给它个0xFFFF作为参数...................
因此对于“聪明的编译器”而言,对后者的处理不会“自作聪明”
那么如果是同样的输入参数,明显前者更快

使用特权

评论回复
9
buqibushe| | 2010-5-10 09:08 | 只看该作者
你可以编译之后,看汇编程序,,
有些编译器用散转的,可能跟IF效果是一样,也要判断

使用特权

评论回复
10
zc3909| | 2010-5-10 16:50 | 只看该作者
跟编译器有关

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

63

帖子

1

粉丝