c语言常用的运行速度优化,最基本的C语言代码级别速度优化

本文介绍了六种C语言代码级别的速度优化方法,包括:使用int代替short作为循环索引,避免指针间接寻址,将if语句移出循环核心,利用库函数,用乘法替代除法,以及合理安排循环结构。这些优化可以显著提升代码执行效率。
摘要由CSDN通过智能技术生成

1、Short to int

描叙:在32位的程序中,使用int类型作循环体的索引变量比short类型具有更好的性能。循环体索引变量指for (i=0; i<9; i++)中的i。

背景:在32位的应用程序中使用short将导致机器码变长,同时处理器需要更长的时间处理;不仅如此,大多数编译器在未优化状况下对于short类型,总是将它转换成integer后再做各种操作,操作完后再转换为short类型,增加了一些不必要的操作。原始代码:unsigned shorti;

for (i=0; i

{

DoSomething();}

优化代码:

unsigned intj;

for (j=0; j

{

DoSomething();

}

2、Pointers to register

描叙:在循环体中尽量少使用指针间接寻址,可以采取一些迂回的方法,如果可能的话,先将间接寻址的内容放在某个寄存器里面,在循环体内操作完后,再回送到指针所指的内存。背景:间接寻址将导致至少两次以上的内存操作,这是其一。其二,由于间接寻址使得指令具有前后的依赖性(只有先获得地址才能够做取内存内容的操作),编译器的优化能力将被降低,同时对处理器中流水线的乱序,调度和指令配对也会有一定的影响。

原始代码:

inti, j = 0, *a = &j;

for (i=0; i

{

*a += i;<

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值