易截截图软件、单文件、免安装、纯绿色、仅160KB

嵌入式C/C++开发中的代码优化

事情应该被做得尽可能的简单,但不是任意地简单化。
――爱因斯坦
虽然做好的程序能按项目需求正确运行到最后一步,但在嵌入式系统开发中并不总是能成功的。由于低成本的需要硬件设计者几乎不可能设计出足够的内存和处理器性能来使得程序能被运行。当然,在软件开发过程中使得程序能够正确运行是更重要的。为了这点,通常有一个或更多的开发平台,这些平台拥有更多的内存和更快的处理器速度,能够使得软件正确运行,并且在项目开发最后阶段能够优化代码。总之,项目开发的最后目标是使得开发出的程序能够在配置低的设备上运行。
1 提高代码的运行效率
所有的C或C++编译器在一定程度上能够优化代码,然而,大部份的优化是基于运行速度和代码长度的折衷,你的程序无法做到既速度快又代码长度小。实际上,在某一方面改进了,但又在其它方面会有负面影响,这取决于程序员决定什么改进是最重要的。设置一些优化方面的信息,编译器在优化阶段当碰到运行速度和代码长度要折衷时能能够做出适当选择。
既然不能让编译器在两方面同时达到优化效果,我建议首先要减小代码量。对于实时或频繁执行的代码块运行速度通常是重要的,并且有许多方法通过动手可以提高运行效率。然而,代码长度通过动手来改变是很难的,这方面编译器能够做得更好。
在程序运行之前,你也许知道哪些子程序或模块是决定代码效率的关键,或许你对这有非常好的解决方法。程序中断、高优先任务、实时计算、高强度计算、频繁被调用函数等都是决定代码效率的关键。有一个存在于软件开发过程中的profiler工具能让你更加专注于那些花费较多时间的程序。
如果你确定需要更好的代码效率,下面的一些技术能让你减少代码运行时间:
内联函数
在C++程序中,“inline”关键字可以在任何一个函数上申明。该关键字能使编译器改变函数调用方式为直接使用拷贝函数内的代码来运行。这种减少运行时间开销的方法与实际函数调用有关系,当内联函数经常被调用且函数内代码少时效果是最好的。
内联函数提供了一个怎样提高运行速度的很好的例子,但链接的代码量有时会有相反的效果。重复增加的代码会增加程序的代码,这与函数的调用次数成正比,显然,对于大函数将增加更加显著。结果是程序运行快了,但需要更多的内存。
表查找
 “switch”语句是一个要被小心使用的常用编程技术,每一次的检查和跳转在机器语言中会简单地因决定下一步要做什么而耗尽处理器的时间。为了提�


相关文档:

Visual C++中的C运行时库浅析

1.概论
 运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所以这个时期的C运行时库都是单线程的。
随着操作系统多线程技术的发展,最初的C运行时库无法满足程序的需求� ......

Linux C notes (BOOK UNIX)

Chapter 1: Thread
① thread functions
1. pthread_self();
2. thread existing
    you can get the value of rval_ptr just by  pthread_join(pthread_t tht, void ** rval_ptr)
    cancel a thread as the thread exits with PTHREAD_CANCELED in pthread_exit, this functio ......

Delphi和C++数据类型对照表

Delphi和C++数据类型对照表
Delphi        字长/值域                                C++
ShortInt  &n ......

捕获ctrl+c信号量

#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;
}  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号