1、选择适合的算法以及数据结构
选择一种适合的数据结构很重要,如果在一堆随机寄存的数中使用了大量的插入以及删除了指令,那使用链表要快得多。数组与指针语句拥有十分亲密的关系,一般来讲,指针比较灵便简洁,而数组则比较直观,容易理解。对于大部份的编译器,使用指针比使用数组生成的代码更短,执行效力更高。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2368.html
在许多种情况下,可以用指针运算接替数组索引,这样做往往能发生又快又短的代码。与数组索引相比,指针一般能使代码速度更快,占用空间更少。使用多维数组时差异更显明。下面的代码作用是相同的,然而效力不同样。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2368.html
数组索引 指针运算文章源自微观生活(93wg.com)微观生活-https://93wg.com/2368.html
For{ p=array文章源自微观生活(93wg.com)微观生活-https://93wg.com/2368.html
A=array[t++]; for{文章源自微观生活(93wg.com)微观生活-https://93wg.com/2368.html
a=*;文章源自微观生活(93wg.com)微观生活-https://93wg.com/2368.html
。。。。。。。。。 。。。。。。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2368.html
} }文章源自微观生活(93wg.com)微观生活-https://93wg.com/2368.html
指针办法的优点是,array的地址每一次装入地址p后,在每一次循环中只需对p增量操作。在数组索引办法中,每一次循环中都必需依据t值求数组下标的繁杂运算。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2368.html
2、使用尽可能小的数据类型文章源自微观生活(93wg.com)微观生活-https://93wg.com/2368.html
能够使用字符型定义的变量,就不要使用整型变量来定义;能够使用整型变量定义的变量就不要用长整型,能不使用浮点型变量就不要使用浮点型变量。固然,在定义变量后不要超过变量的作用规模,如果超过变量的规模赋值,C编译器其实不报错,但程序运行结果却错了,而且这样的过错很难发现。
在ICCAVR中,可以在Options中设定使用printf参数,尽可能使用基本型参数,少用长整型参数,至于浮点型的参数则尽可能不要使用,其它C编译器也同样。在其它前提不变的情况下,使用%f参数,会使生成的代码的数量增添不少,执行速度降低。
3、减少运算的强度
(1)、查表
一个聪慧的游戏大虾,基本上不会在自己的主循环里弄什么运算工作,绝对是先计算
以上就是微观生活(93wg.com)关于“C语言程序代码优化11种实用办法”的详细内容,希望对大家有所帮助!
评论