- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式程序设计中 C/C++代码的优化
Optimizing C and C++ code in embedded programming
刘剑鸣
Liu Jianming
摘要:本文介绍了在嵌入式程序设计中几种提高 C/C++代码效率
的方法,通过对例子的分析,探讨了影响程序效率的原因。
关键词:c 语言,c++,嵌入式,优化
Abstrcat: In this paper, author introduced some methods to increase
the efficiency of C/C++ code in embedded programming. Based on the
analysis of the example, the reason that affects the efficiency of program
was discussed.
Key words: c language , c++ ,embedded,optimization
1 引言
嵌入式计算机系统是指完成特定功能的计算机系统,它具有软件
代码小,自动化程度高,响应速度快等特点。特别适合于要求实时和
多任务的应用体系。由于嵌入式系统受时间、空间和运行环境的严格
限制,使得嵌入式系统软件的开发变得非常困难,为了开发出高性能
的嵌入式系统,开发语言的选择十分关键。
目前,在嵌入式系统开发过程中可使用的语言很多,其中 C 和
C++应用得最广泛。C++在面向对象、结构化等方面对 C 进行了改进,
但在程序代码容量、执行速度等方面性能不如 C 语言。C 语言既有低
级语言的直接控制硬件的能力,又有高级语言的灵活性,在嵌入式系
统中得到了最广泛的应用。在嵌入式的系统开发中,出于对低价产品
的需求,硬件的设计者需要提供刚好足够的存储器和完成工作的处理
能力。所以在嵌入式软件设计的最后一个阶段变成了对代码的优化阶
段。
经过本人在嵌入式系统设计过程中的实践,下面介绍几种简单且
行之有效的 C/C++代码的优化方法。考虑到读者已经学过了 C/C++
的原理,有一些已经是经验丰富的编程员,本文的叙述将尽可能深入
浅出。
2 变量的处理
开始编程时,一般首先遇到的是初始化的问题。建议使用英文单
词的缩写代表变量,比如代表高度指针的变量可取名 highpoint 或简
写为 hiptr 。用缩写减少字母可加快程序的运行速度并减少占用的内
存。另外变量类型选取的范围越小运行速度越快占用的内存越少。比
如 int 型变量比 long 型变量运行速度越快,但变量类型选取的范围越
小算术运算时越容易产生溢出错误。
在声明局部变量的时候可以使用寄存器变量 register 关键字。这
就使得编译器把变量放入寄存器中,而不是在堆栈中,合理使用这种
方法可以提高执行速度。函数调用越频繁,提高代码的效率越明显。
当使用变量作为函数返回值时,当变量值很大时,将花费很多的
复制时间。参数返回没有变量返回的复制时间的问题,在时间上要快。
但参数返回破坏了参数值,在安全性能上和函数的重复使用性能上
差。建议在编程时,小的常量返回可用变量,小的变量返回用指针,
大的常量返回可用参数或静态方法。另外,使用全局变量比函数传递
参数更加有效率。这样做去除了函数调用参数入栈和函数完成后参数
出栈所需的时间。然而,决定使用全局变量会影响程序的模块化和重
入,故要慎重使用。
3 数组的处理
(1)数组在使用前需要对其先初始化。一种提高速度的方法是
数组的范围在初始化时空着不添,这样程序运行的速度会更快。以函
数引用数组为例:
void p(int a[6][3]){
for(int j=0;j2;j++)
a[j][2] =j;
}
与之对应的函数
void p(int a[][3]){
for(int j=0;j2;j++)
a[j][2]=j;
}
两种
您可能关注的文档
最近下载
- (新课标)人教版小学劳动教育五年级上册第一章劳动项目2《煮面条》教学设计.doc
- 副县长在县委理论学习中心组学习会上的发言(党的作风建设的重要论述).doc VIP
- 注射水纯水纯蒸汽施工方案.pdf VIP
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案.docx VIP
- 电力新能源知识培训课件.pptx VIP
- 电气运行、检修、事故处理、安全操作规程(电气五大规程).docx
- 《矿山隐蔽致灾因素普查规范 大纲》.doc VIP
- 新概念英语第一册 Lesson 21-22课件.ppt VIP
- 2025贵州遵义南国大数据有限公司招聘100人笔试模拟试题及答案解析.docx VIP
- 网信体系下 网络舆情应对流程指南.docx VIP
文档评论(0)