switch和if...else...

    今天一个学嵌入式的同学问了我一个关于switch和if...else...的效率问题,但是我很少去关心这种类型的效率问题(3~4个if语句判断和switch效率其实是差不多的)。

主要有两个原因:

        1、现在cpu的计算速度都非常快,这点时间差并不会很影响效率!

        2、一般我们写程序也不会用到很多的if...else... 这样先不说效率问题,光是可读性就很差了!

但是本着实践出真知的理念,我还是亲手测试了下两者的效率。测试过程用到了timeval结构体,因为要测运行时间,而运行时间一般都是微秒级别的,那么下面简单介绍下timeval结构体:

timeval结构体定义在time.h中:


struct timeval
{
     __time_t tv_sec;                /* Seconds. */
     __suseconds_t tv_usec;          /* Microseconds. */

};


其中,tv_sec为从1970-1-1零点零分到创建struct timeval时的秒数,tv_usec为微秒数。

注意:它是指从1970-1-1 0:0:0 零微秒至当前的时间差tv_sec秒后面的零头。所以,要想获取一个操作或子程序的运行毫秒或微秒级时长,不能简单使用前后两个时间采集点的tv_usec相减,否则会出现负值,而应考虑到前后两个时间点的秒差(tv_sec)

代码什么的就不贴了,测试过程中的现象我还解释不了。有时是if...else...快 有时是switch快 有待以后研究!
或者有人研究过的可以留下评论!!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值