不定期总结一下我觉得哪些简单的语法可以提高程序速度。

本文总结都是个人看法,有待讨论,希望大家多多讨论,嘿嘿。

 

1、a++和++a

尽量使用++a,因为一般的话,++a要比a++快。

这是为什么呢?因为++a的实现是先把a加1(inc指令),然后把a的地址传送下去;而a++的实现,也是先把a复制一份到内存单元b内,然后把a+1(inc指令),之后把b的地址传送下去。所以a++比++a多了一份复制,会降低速度。

 

2、const修饰比非const快。

这个很显然,在编译器做优化的时候,const对象不修改,可以外提和重用,所以优化率显然比非const的高,速度也会相应的提升。

 

3、尽可能使用switch,因为switch并不是简单的if-else,我做过实验switch的速度接近goto!

因为,switch是将其内的所有代码都生产在同一块区域内,之后,根据不同的case哈希到某个程序运行位置,所以和if-else那种不断地对比,速度显然大大的提升。这也说明了为什么switch只能用int类型,因为其他类型散列不是很显然,这同时也是break的原因,因为没有break的话,代码会在switch生产的程序段内不断地执行,只要遇到break,才会跳出来。

 

以上均为我自己实现编译器或者看一些编译书发现的,有待讨论,但基本上我都做过实验,应该都很符合

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值