- void Init_system(void) REENTRANT
- {
- unsigned char i;
- P1=255;
- if(i==0)
- {
- static unsigned char b=25;
- b++; //前后多次调用Init_system()函数,此处b的值会作累积。
- P1=b;
- }
- else
- {
- P1=0;
- }
- TMOD &= 0xF0;
- TMOD |= 0x01;
- TH0 = TIMER_20MS_TH0;
- TL0 = TIMER_20MS_TL0;
- ET0 = 0;
- EA=0;
- TR0 = 0;
- }
复制代码且看上面的代码。
我一直以为static只是用来限制文件中函数和变量的作用域、函数体内变量的作用域,同时对变量还起到不消亡的作用。
我还真的想不到还能用在复合语句内对变量定义使之“不消亡”
局部变量(内部变量):在函数内部定义,内部使用,或者在程序块{}中。动态存在的,即用完后即释放,同一块地址空间可能会被不同的局部变量使用,默认是动态的,或者用auto指定。
静态存在的,用static指定,固定地址,长期存在,保留上次引用后的值。
全局变量(外部变量):在函数外部定义。全局变量前面加static,表示该变量的作用范围限定在该文件内,不允许被其他文件引用。
一周热门 更多>