static怎么理解呢?

2019-08-12 17:30发布

u8 KEY_Scan(u8 mode)
{  
static u8 key_up=1;//按键按松开标志 (只进行一次初始化)
if(mode)key_up=1;  //支持连按  
if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))
{
delay_ms(10);//去抖动 
key_up=0;
if(KEY0==0)return KEY0_PRES;
else if(KEY1==0)return KEY1_PRES;
else if(WK_UP==1)return WKUP_PRES; 
}else if(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1;     
return 0;// 无按键按下
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
24条回答
三叶草
1楼-- · 2019-08-12 21:00
static作用:1.声明全局变量时,该全局变量只能在本文件使用  2.声明函数时,该函数只能在本文件使用  1和2是用到了static的隐藏性质 3.在函数内声明变量时,该变量只初始化1次
jermy_z
2楼-- · 2019-08-12 23:52
楼主可以debug一下  
用static和不用static的时候

重新进入函数时的值
wangxingjianghu
3楼-- · 2019-08-13 01:33
回复【2楼】jermy_z:
---------------------------------
是自己调试一下看看值吗
wangxingjianghu
4楼-- · 2019-08-13 06:22

jermy_z
5楼-- · 2019-08-13 09:43
 精彩回答 2  元偷偷看……
托卡玛克
6楼-- · 2019-08-13 14:21
补充一下:c语言的static在使用位置不同时是不同的,在全局上使用,表明该变量只能在本文件使用,在函数中使用,表该变量固定占据一个内存,且初始值在编译时决定,所以再次进入函数时,该变量不会重新被初始化且保留上一次退出函数的值。个人简介,如有错误,希望不吝赐教。

一周热门 更多>