void Timer0() interrupt 1 { static u16 i; TH0=0XFC; //给定时器赋初值,定时1ms TL0=0X18; i++; if(i==1000) { i=0; Second ++; } }
想知道这个static定义的i有什么特别的用途??能不能不定以为静态变量?
static就是静态的意思,如果将这里的static去掉,每次进入该中断时i=0然后加加=1,出中断时i的内存被释放就不存在了,所以你的i永远不会被加到1000,也就是说秒不会加1.
static的作用就是让i在执行完中断后内存不会被释放