用局部int型静态变量运行过程中出现了乱变的情况

2019-07-14 17:45发布

用的是IAR FOR STM编译器,一个涵数中定义了int型静态变量
static unsigned int T20min,T1hour;//20,60分钟
T20min,T1hour都是加1的,在运行过程中可以看到会从几十突然变到几千或几万的,但换成两个static unsigned char静态变量就正常了,或者换成数组形变量也没事。为什么会这样?这个静态变量只是局部的,只有这个涵数才用到的。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
ZXH22770
1楼-- · 2019-07-15 01:32
有可能存在越界其他数据把他们破坏了
鑫12345
2楼-- · 2019-07-15 03:44
静态局部变量固定占用了一个内存坑。
小佳99
3楼-- · 2019-07-15 06:03
T20min++;
if(T20min>1999)
{
    T20min=0;
}
都是正常的,有时候记时也正常,有时候就乱变。
gvjhvbc
4楼-- · 2019-07-15 07:33
 精彩回答 2  元偷偷看……
天地直方
5楼-- · 2019-07-15 11:11
换成两个static unsigned char静态变量就正常了,或者换成数组形变量也没事,这个涵数用的都是静态变量
gsdafs
6楼-- · 2019-07-15 16:26
if(T20min>1999)  你变成uchar后 那么这个条件永远不可能满足了,0~255

一周热门 更多>