有时希望函数中局部变量的值在函数调用结束后不消失而保留原值.即占用的存储单元一直不释放,保留到下次调用该函数,这时就应该指定局部变量为“静态局部变量",用关键字staric进行声明。在嵌入式系统编程时,常常会用到静态变量。一般为了保证数据空间在整个程序运行过程中不被释放而一直保持,全局变量中的计数器等多用静态变量。例如,利用状态机机制编写键盘接口程序,其中的状态变量要用静态变量,以记录每次中断时键盘按键的前一个状态,从而判断当前功能;因为该状态信息不能丢失,因此,采用static型的变量较为合适。
statiC state kevboard:
对静态变量的说明:
①静态局部变量属于静态存储类别,在整个程序运行期间都不释放。
②静态局部变量在编译时赋初值,即只赋初值一次。
③如果在定义局部变量时不赋初值,则对静态局部变量来说,ICCAVR编译时自动赋初值o(对数值型变量)或空字符(对字符变量)。
|