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这个变量这样的功能。但是在嵌入式的设备中,用于作图形显示的那个文件一般比较大,定义一个全局的变量,会使代码查看起来很麻烦,这时候使用静态局部变量就用解决这个问题了。

posted @ 2021-01-31 23:28  田大叔  阅读(88)  评论(0)    收藏  举报