51单片机静态局部变量问题>?

刚在论坛上看了一篇名为51单片机编程技巧的文章,上面说静态变量最好放在CODE里,可是如果 放在CODE里给变量付初值以后那是不是这个静态变量的值就能在再改变了,因为是CODE的,只能写不能改写或读出,求解。

第1个回答  2013-03-30
放在CODE里,就《常量》。
第2个回答  2013-03-30
您说的是const修饰的吧?

静态变量是用static修饰的。
第3个回答  2013-03-31
三楼正解

51单片机静态局部变量问题>?
),该变量只在这个函数中有效,在其它函数中无法读取和改变它的值,当跳出这个函数后,它所占用的内存空间将被释放,留给其它局部变量用。如:unsigned char aaa(){ unsigned char b; …… return b;}还有一种变量,就是在函数里面定义,但是加了static前缀的,在离开该函数后他的值任然会...

C51 单片机 局部变量 问题
同样可以得出一个结论,正是因为单片机的RAM有限,才会导致局部变量不清除。对于电脑来说,空间近乎无限的,随时随地你都可以分配空间给变量用。但是51单片机就那么128字节,必须详细策划好如何分配,所以局部变量才有了自己固定的地盘。说到这里,我相信你的问题我已经找到答案了,虽然都是我推测的,但是十...

51单片机,keil编译环境,我定义位变量为局部变量时为什么编译错误?
看你用什么语言写了,如果用汇编的话不用定义,直接用就行了,如:p1.0、p2.2……如果用C编写的话,应该先把头文件加进来,#include<reg51.h>,加进来后,如果不定义端口的话:P1、P1^1,这里的P是大写的……当然也可以自己定义了……如:sbit R_A=P2^0;等等……...

51单片机如何函数调用时局部变量存放
1、首先将51单片机连接在计算机上。2、其次使用计算机打开51单片机的系统设置。3、最后在系统设置中调节为函数调用局部变量存放即可。

51单片机变量 51的单片机变量是怎么个定义法。全局变量,局部变量都放 ...
不能这样定义,这样定义是错的。你这个是赋值,不是定义在0x22单元格里。unsigned char bdata SS _at_ 0x22;只有在Keil编译环境下才可以这样使用。还有,这种语法不适合用C语言,我说的是不适合,不是不能用。C语言里面的指针就是针对这个的,不建议使用 _at_ 进行变量在RAM中固定,这样对程序...

51单片机变量初值。
如果是“C51”,并且使用默认的startup.a51启动文件(未手动修改)的话,那么在运行到main()之前、片内SRAM已经都初始化为0了。

在51或AVR单片机的中断服务程序中,能否定义局部变量?
当然可以!如果是一般的变量,每次进入中断都会按原来的赋予初值!如果加static类型,就可以保持上次断的值,效果相当于全局变量!

static在51单片机中几种用法
1、全局变量对所有子函数都有效,谁都可以修改,可能会超出你的预计范围(就是说,房子虽然是你的,但大家都有钥匙,可以随便进来换换装修,你掌握并不了)2、移植性高,子函数内的静态局部变量,只需要输出子函数即可。但全局变量,要么需要主文件为你定义这个全局变量,要么就会在多个C文件包含你的头...

如果在51单片机的外部RAM中定义变量,需要将变量用xdata修饰,请问这个...
不需要。不论静态动态都可以分配到外部RAM空间的。

这个51单片机程序这样写为什么会错呢,
sbit 定义的是硬件引脚,不是普通的变量,所以只能放在最前面,使其为全局变量,放在main里面成了局部变量,显然是不对的。

相似回答