WEB开发网
开发学院软件开发C语言 如何优化C语言代码 阅读

如何优化C语言代码

 2010-10-07 16:19:17 来源:WEB开发网   
核心提示:(2)、延时函数:通常使用的延时函数均采用自加的形式:void delay (void){unsigned int i;for (i=0;i<1000;i++);}将其改为自减延时函数:void delay (void){unsigned int i;for (i=1000;i>0;i--);}两个函数的延

(2)、延时函数:

通常使用的延时函数均采用自加的形式:

void delay (void)
{
unsigned int i;
for (i=0;i<1000;i++)
;
}
将其改为自减延时函数:
void delay (void)
{
unsigned int i;
 for (i=1000;i>0;i--)
 ;
}

两个函数的延时效果相似,但几乎所有的C编译对后一种函数生成的代码均比前一种代码少1~3个字节,因为几乎所有的MCU均有为0转移的指令,采用后一种方式能够生成这类指令。在使用while循环时也一样,使用自减指令控制循环会比使用自加指令控制循环生成的代码更少1~3个字母。但是在循环中有通过循环变量“i”读写数组的指令时,使用预减循环时有可能使数组超界,要引起注意。

(3)while循环和do…while循环

用while循环时有以下两种循环形式:

unsigned int i;
i=0;
while (i<1000)
{
 i++;
  //用户程序
}

或:
unsigned int i;
i=1000;
do
i--;
//用户程序
while (i>0);

在这两种循环中,使用do…while循环编译后生成的代码的长度短于while循环。
7、查表
在程序中一般不进行非常复杂的运算,如浮点数的乘除及开方等,以及一些复杂的数学模型的插补运算,对这些即消耗时间又消费资源的运算,应尽量使用查表的方式,并且将数据表置于程序存储区。如果直接生成所需的表比较困难,也尽量在启了,减少了程序执行过程中重复计算的工作量。
8、其它
比如使用在线汇编及将字符串和一些常量保存在程序存储器中,均有利于优化。
 

上一页  1 2 

Tags:如何 优化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接