C51笔记(2) Keil C 程序优化
1. 采用短变量。如bData,unsigned char。
2. 无符号变量。51不支持符号运算。
3. 避免使用浮点指针。浮点运算时要禁止中断。
4. 局部变量代替全局变量。编译器分配局部变量在内部存储,全局变量在外部存储。
5. 为变量分配内部存储区。
6. 使用特定指针。
7. 使用调令。
8. 使用宏代替函数。
9. 使用小存储器模式。
10. 使用运行库。注意调用非重入函数时最好关闭中断。(可重入的概念:当程序在这个函数中运行还未退出时,因为某种原因这个函数是否可以被再次调用,如递归调用和中断调用。)
相关文档:
函数名与函数指针
一 通常的函数调用
一个通常的函数调用的例子:
//自行包含头文件
void MyFun(int x); //此处的申明也可写成:void MyFun( int );
int main(int argc, char* argv[])
{
MyFun(10); //这里是调用My ......
假定经过了若干年的演进, IT技术发展到了这种程度:
1) 联网: 随时随地有无限大的带宽, 用户可以完全免费使用网络, 以及无线网络100%的覆盖率;
2)PC性能:每台电脑都有足够的内存, 足够快的CPU; 在永久存储领域出现革命性技术, 即访问外部存储时间和访问内存时间在同一数量级;
3) B/S开发技术: 大量成熟的we ......
由于程序运行时占用的内存过大,所以想办法给程序瘦身。
在调试中发现结构体占用的size竟然和预想的不一样,原来……
看看下面讲的吧,肯定会不枉此看哦!
1,比如:
struct{
short a1;
short a2;
short a3;
}A;
struct{
......
// 摘自:Wikipedia.org
C语言的标准文文件要求了一个平台移植C语言的时候至少要实现的一些功能和封装的集合,称为“标准库”,标准库的声明头部通过预处理器命令#include进行引用。
在C89标准中:
01. <assert.h>
02. <ctype.h>
&nbs ......