这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 两段完成同样功能的简单C代码

共6条 1/1 1 跳转至

两段完成同样功能的简单C代码

工程师
2008-03-25 16:11:33     打赏
//y=f(x);
如下:
   x=0,1,2,3,4 非常频繁,大家的经验或判断code1和code2 哪段代码应当运行快一些,或一样.
int f(int x)
{
   ...
}

//code1
switch(x) {
  case 0:
       y=0;
  break;
  case 1:
       y=1;
  break;
  case 2:
       y=6;
  break;
  case 3:
       y=2;
  break;
  case 4:
       y=8;
  break;
  default:
       y=f(x);
  break;
}

//code2

if(x==0)
{
    y=0;
}
else if(x==1)
{
    y=1;
}
else if(x==2)
{
    y=6;
}
else if(x==3)
{
    y=2;
}
else if(x==4)
{
    y=8;
}
else
{
    y=f(x);
}



关键词: 两段     完成     同样     功能     简单     代码    

助工
2008-03-25 17:55:17     打赏
2楼
switch快一些

菜鸟
2008-03-25 22:30:44     打赏
3楼
SWITCH快些。 ;- )

菜鸟
2008-03-26 21:41:12     打赏
4楼
根据出现的频繁度,可以考虑把出现多的x放在前面,少的放在后面,
或者另一种很呆但有效的办法,判x是否为0 to 4.是就直接查表得到y,否则就调用f(x).
呵呵.

菜鸟
2008-03-27 16:40:43     打赏
5楼
if else

菜鸟
2008-05-21 11:18:32     打赏
6楼

产生汇编代码比较最直接.


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]