2022年C语言代码 .pdf
《2022年C语言代码 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言代码 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 代码优化1. 重要的 80-20 规则不要忘记由经验确定的80-20 规则,它宣称一个典型的程序用80% 的时间执行20% 的代码。这是一个重要的规则,因为它提醒你作为一个软件开发者的目标是识别出能全面提升你的程序性能的20% 的代码。你可以用各种方式无限期地优化你的函数,但除非你将精力集中在正确的函数上,否则就是白白浪费精力。2. 用指针运算代替数组索引这样做常常能产生又快又短的代码。与数组索引相比,指针一般能使代码速度更快,占用空间更少。使用多维数组时差异更明显。下面的代码作用是相同的,但是效率不一样。1.数组索引2.for(;) 3. a = arrayt+; 4. 5. 1.指针运
2、算2.p = array; 3.for(;) 4. a = *(p+); 5. 6. 指针方法的优点是,array 的地址每次装入地址p 后,在每次循环中只需对p 增量操作。在数组索引方法中,每次循环中都必须根据t 值求数组下标的复杂运算。3. 查表 (游戏程序员必修课) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 一个聪明的游戏大虾,基本上不会在自己的主循环里搞什么运算工作,绝对是先计算好了,再到循环里查表。看下面的例子:
3、旧代码:1.long factorial( int i) 2. 3. if (i = 0) 4. return 1; 5.else 6. return i * factorial(i - 1); 7. 新代码:1.static long factorial_table = 1, 1, 2, 6, 24 , 120 , 720 /* etc */ ; 2.long factorial( int i) 3. 4.return factorial_tablei; 5. 如果表很大,不好写,就写一个init 函数,在循环外临时生成表格。4. 结构体成员的布局把长的类型放在短的前面, 可以避免内存的空洞
4、. 5. 提升循环的性能要提升循环的性能,减少多余的常量计算非常有用(比如,不随循环变化的计算)。6. Inline函数在 C+中,关键字 Inline 可以被加入到任何函数的声明中。这个关键字请求编译器用函数内部的代码替换所有对于指出的函数的调用。这样做在两个方面快于函数调用:第一, 省去了调用指令需要的执行时间;第二, 省去了传递变元和传递过程需要的时间。但是使用这种方名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 法在优化
5、程序速度的同时,程序长度变大了, 因此需要更多的ROM 。使用这种优化在Inline函数频繁调用并且只包含几行代码的时候是最有效的。7. 减少函数调用参数使用全局变量比函数传递参数更加有效率。这样做去除了函数调用参数入栈和函数完成后参数出栈所需要的时间。然而决定使用全局变量会影响程序的模块化和重入,故要慎重使用。8. static- 把本地函数声明为静态的如果一个函数只在实现它的文件中被使用,把它声明为静态的(static) 以强制使用内部连接。否则, 默认的情况下会把函数定义为外部连接。这样可能会影响某些编译器的优化 比如,自动内联。9. 参数、返回值、局部变量尽量使用32bit 数据类型;
6、因为多数ARM 处理器的操作是32bit 的, 8bit 或 16bit 回增加操作的指令数 (代码 1),并且这样可以保证边界对齐;参数不要超过4 个,返回值尽量是32bit 数据类型,因为ARM 遵循 ATPCS 要求,前四个参数使用寄存器(r0-r3) 传递,返回值用r0 传递,多余的参数用栈传递;局部变量不要超过12 个, ARM 编译器通常将全局变量定位在存储空间中,局部变量分配给通用寄存器,ARM 中可通用的寄存器是12 个;1.intwordinc(inta) word_inc 2. ADD a1,a1,#1 3. return a + 1; MOV pc,lr 4. 5.sho
7、rtshortinc(shorta) short_inc 6. ADD a1,a1,#1 7. return a + 1; MOV a1,a1,LSL #16 8. MOV a1,a1,ASR #16 9. MOV pc,lr 10. 11. charcharinc(chara) char_inc 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 12. ADD a1,a1,#1 13. return a + 1; AND a1,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言代码 2022 语言 代码
限制150内