在C51中变量的空间分配几个方法
来源:互联网 发布:特蕾莎修女 英文 知乎 编辑:程序博客网 时间:2024/04/30 10:46
1、 data区空间小,所以只有频繁用到或对运算速度要求很高的变量才放到data区内,比如for循环中的计数值。
2、 data区内最好放局部变量。
因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率。当然静态局部变量除外,其内存使用方式与全局变量相同;
3、 确保你的程序中没有未调用的函数。
在Keil C里遇到未调用函数,编译器就将其认为可能是中断函数。函数里用的局部变量的空间是不释放,也就是同全局变量一样处理。这一点Keil C做得很愚蠢,但也没办法。
4、 程序中遇到的逻辑标志变量可以定义到bdata中,可以大大降低内存占用空间。
在51系列芯片中有16个字节位寻址区bdata,其中可以定义8*16=128个逻辑变量。定义方法是: bdata bit LedState;但位类型不能用在数组和结构体中。
5、 其他不频繁用到和对运算速度要求不高的变量都放到xdata区。
6、 如果想节省data空间就必须用large模式,将未定义内存位置的变量全放到xdata区。当然最好对所有变量都要指定内存类型。
7、 当使用到指针时,要指定指针指向的内存类型。
在C51中未定义指向内存类型的通用指针占用3个字节;而指定指向data区的指针只占1个字节;指定指向xdata区的指针占2个字节。如指针p是指向data区,则应定义为: char data *p;。还可指定指针本身的存放内存类型,如:char data * xdata p;。其含义是指针p指向data区变量,而其本身存放在xdata区。
2、 data区内最好放局部变量。
因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率。当然静态局部变量除外,其内存使用方式与全局变量相同;
3、 确保你的程序中没有未调用的函数。
在Keil C里遇到未调用函数,编译器就将其认为可能是中断函数。函数里用的局部变量的空间是不释放,也就是同全局变量一样处理。这一点Keil C做得很愚蠢,但也没办法。
4、 程序中遇到的逻辑标志变量可以定义到bdata中,可以大大降低内存占用空间。
在51系列芯片中有16个字节位寻址区bdata,其中可以定义8*16=128个逻辑变量。定义方法是: bdata bit LedState;但位类型不能用在数组和结构体中。
5、 其他不频繁用到和对运算速度要求不高的变量都放到xdata区。
6、 如果想节省data空间就必须用large模式,将未定义内存位置的变量全放到xdata区。当然最好对所有变量都要指定内存类型。
7、 当使用到指针时,要指定指针指向的内存类型。
在C51中未定义指向内存类型的通用指针占用3个字节;而指定指向data区的指针只占1个字节;指定指向xdata区的指针占2个字节。如指针p是指向data区,则应定义为: char data *p;。还可指定指针本身的存放内存类型,如:char data * xdata p;。其含义是指针p指向data区变量,而其本身存放在xdata区。
- 在C51中变量的空间分配几个方法
- 在C51及C251中变量空间分配的方法及注意事项
- C中几个变量的区别:(特别是有程序分配空间的解释)
- C51编程中根据不同情况在不同空间(data xdata bdata)定义变量的注意事项
- C51中变量的存储
- Keil C51中变量的使用
- C51中变量的存储器类型有
- 类对象只能在堆上分配空间的方法
- 关于c语言中自动变量(局部自动变量)的空间的分配的问题
- 80c51内部RAM空间分配
- C51 中 init_mempool 及动态内存分配的问题
- C51变量的存储
- Go的变量到底在堆还是栈中分配
- 变量分配空间问题
- Fortran把未分配的数组传入子过程,在子过程中分配空间
- 指针在子函数中分配空间若干问题
- 变量声明/空间分配/未初始化的随机值分配/变量非运算/变量置空
- java中对象、成员变量、静态变量、方法的内存分配
- C/C++头文件一览
- C++ string Class 使用
- 学习指针不可少的好文章 !
- 单片机C51编程规范
- Keil C51 vs 标准C
- 在C51中变量的空间分配几个方法
- 学习linux
- 业务人员用的软件=BPEL+SOA
- Hibernate数据加载——Session.get/load
- gcc使用的方法
- 字符串string 字符数组与指向字符串的指针pchar的区别与联系
- Introduce VC
- Hibernate要点
- 网上免费索取杂志-大全