static的妙用
一:
在用C做开发时,static的关键字几乎天天要要用到的。
比如有个test.c文件里面,有个全局的变量int aa=0;还有个函数void fun1();当我们不想这个变量aa和函数fun1被别的文件使用到话。我们得按如下这样的更改:
static int aa=0; static void fun1();
这样的话别的文件就无法使用到这个变量和函数的了。
二:
static在嵌入式开发有个妙用。比如手环设备(oled屏,功能也比较少,2-3个按键的那种),在idle界面(主界面)按下手环旁边的侧键,按下侧键就切换到功能的界面,然后再继续按下侧键,在功能界面中循环的切换。下方就为伪代码:
void show_funscreen() //显示功能界面
{
static int ff=0;
if(0==ff)
{
//画出功能界面1
ff=1;
}
else if(1==ff)
{
//画出功能界面2
ff=0;
}
}
void showidle() //主界面
{ //Keyhandler是手环在主界面时,侧按键每次发生一次按下事件时,调用切到功能界面的函数show_funscreen
Keyhandler(KEY_EXTRA,KEY_DOWN,show_funscreen);
}
有人会说,其实你这个使用全局变量也能实现类似上面的ff这个变量这样的功能。但是在嵌入式的设备中,用于作图形显示的那个文件一般比较大,定义一个全局的变量,会使代码查看起来很麻烦,这时候使用静态局部变量就用解决这个问题了。

浙公网安备 33010602011771号