一、介绍
c工程代码的质量在实现功能的基础上,主要是以下
1、代码时间复杂度
2、代码空间复杂度
3、代码可读性
这里以通过优化变量来优化代码的时间和空间复杂度
二、 内存介绍
内存主要分为RAM和ROM,一般情况,代码存在ROM,程序运行起来后,变量用RAM;
ROM中:
1、代码段
2、只读数据段,主要是常量、const变量
RAM中:
1、堆
2、栈
3、已初始化读写数据段
C语言在编译连接后,将生成代码段(TEXT),只读数据段(RO Data)和读写数据段(RW Data)
运行时,除了上述三个区域外,还包括未初始化数据段(BBS)区域和堆(heap)区域和栈(Stack)区域
三、关键字介绍
1、auto 存储类是所有局部变量默认的存储类
2、register 存储类,定义存储在寄存器中而不是 RAM 中的局部变量,不能使用一元运算符比如&
3、static 存储类,程序的生命周期内保持局部变量的存在
4、const 修饰变量不可变,变成静态,存放与ROM
四、使用实例
1、在局部高速访问的变量加上,register优化时间
如下面函数访问
void update(void)
{
register int miles;
//---
}
与不加register相比,加上访问更快
2、const使用,优化时间和RAM
正弦波发生函数
1.常规操作,使用数学库产生
#include <math.h>
float sin_sigal(float x)
{
float ret;
ret = sin(x*3.14/180);
return ret;
}
2.const查找表方式
将0-360度的sin值放于数组
const sin_num[360] = {0,0.8414709848078965 ,0.9092974268256817 ,
0.1411200080598672 ,-0.7568024953079282 ,-0.9589242746631385 ,
-0.27941549819892586 ,0.6569865987187891 ,0.9893582466233818 ,
0.4121184852417566 ,-0.5440211108893698 ,...};
float sin_sigal(int x)
{
float ret;
ret = sin(x);
return ret;
}