嵌入式开发中C程序优化浅析
嵌入式系统由于受功耗、成本和体积等因素的制约,嵌入式微处理器的处理能力与桌面系统处理器相比也存在较大差距,故嵌入式系统对程序运行的空间和时间要求更为苛刻。
通常,需要对嵌入式应用程序进行性能优化,以满足嵌入式应用的性能需求。
1 嵌入式程序优化的类型
嵌入式应用程序优化,指在不改变程序功能的情况下,通过修改原来程序的算法、结构,并利用软件开发工具对程序进行改进,使修改后的程序运行速度更高或代码尺寸更小。
按照优化的侧重点不同,程序优化可分为运行速度优化和代码尺寸优化。运行速度优化是指在充分掌握软硬件特性的基础上,通过应用程序结构调整等手段来缩短完成指定任务所需的运行时间;代码尺寸优化则是指应用程序在能够正确实现所需功能的前提下,尽可能减小程序的代码量。实际应用中,这两者往往是相互矛盾的,为了提高程序运行速度,就要以增加代码量为代价;而为了减小程序代码尺寸,可能又要以降低程序运行速度为代价。因此,在对程序进行优化之前,应根据实际需要来制定具体的优化策略。随着计算机和微电子技术的不断发展,存储空间已不再是制约嵌入式系统的主要因素,因此本文主要讨论运行速度优化。
2 嵌入式程序优化遵循的原则
嵌入式程序优化主要遵循以下3个原则。
①等效原则:优化前后程序实现的功能一致。
②有效原则:优化后要比优化前运行速度快或占用存储空间小,或二者兼有。
③经济原则:优化程序要付出较小的代价,取得较好的结果。
3 嵌入式程序优化的主要方面
嵌入式程序的优化分为3个方面:算法和数据结构优化、编译优化以及代码优化。
3.1 算法和数据结构优化
算法和数据结构是程序设计的核心所在,算法的好坏在很大程度上决定了程序的优劣。为了实现某种功能,通常可以采用多种算法,不同算法的复杂度和效率差别很大。选择一种高效的算法或对算法进行优化,可以使应用程序获得更高的优化性能。例如:在数据搜索时,二分查找法要比顺序查找法快。递归程序需要大量的过程调用,并在堆栈中保存所有返回过程的局部变量,时间效率和空间效率都非常低;若根据实际
相关文档:
const 是在程序中非常重要。在这里我做一下简单的介绍。
1.const 基础
const有两种形式:
a) const Type var;
如:int a =10;const int * var=&a; 那么var就是常量指针,表明是指向常量的指针,也就是说a的值不能改变。
......
一、什么是C/S和B/S
第一、什么是C/S结构。C/S
(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到
Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应
......
链表是c语言中很重要的数据结构,是考察一个程序员的基本功的手段,之前在一家公司面试时就问到了
实现一个链表的反转,当时就是没有很好冷静的思考,今天在这里写出来,共勉!
基本算法:
1. 判断是否为空,如果为空,返回NULL
  ......
#include<signal.h>
#include<stdio.h>
void ctrlhandler( int a )
{
printf("you have press ctrl+c \n");
/* close 相关操作*/
getchar();
exit(0);
}
int main()
{
signal(SIGINT,ctrlhandler);
/*其他操作*/
getchar();
return 1;
} ......
发贴前请先读:c/c++ 版“经典”问题解答
C/C++一直都是地球上使用最广泛的编程语言,而我们的C/C++版自然人气也不差,但是一直都有一些狠初级的问题提了又提,并不是说这些问题如何如何的不好,还是如何如何的弱智,这些问题一直都是新手学习的基础,是必须要经过的门槛,所以也有存在的必要,但是提的多了, ......