第1章 8051单片机C语言程序设计概述
1.6 变量、存储类型与存储模式
全局变量定义在函数外面,生命期从所定义的地方开始,其后面的所有函数都可以读/写该全局变量,本书案例在使用定时器时,为得到更大的延时值,程序中定义了全局变量tCount,在定时器中断内对该变量累加,从而得到更大的延时间隔,如果程序中其他地方不需要使用tCount,该变量可以不必放在程序*前面,而是放在定时器中断函数的上一行。
局部变量定义在函数内部,对于循环及其他的临时计算,应尽可能使用局部变量,作为优化处理的一部分,编译程序会试图将局部变量维持在寄存器中,寄存器访问是*快的内存访问类型,特别是unsigned char’和unsigned int类型的变量。
对于刚才讨论的tCount变量,在C语言程序设计时,还可以定义在中断函数内部实现计时累加,但要注意在定义前面加上static,因静态变量仅在函数**调用时被初始化一次,此后不再被初始化。
8051系列单片机中,程序存储器与数据存储器严格分开,特殊功能寄存器与片内数据存储器统一编址,这与一般微型计算机的存储结构是不同的。
Keil C5l编译器完全支持805l单片机硬件结构,可完全访问8051硬件系统的所有部分,编译器通过将变量、常量定义成不同的存储类型(data、bdata、idata、pdata、xdata、code),从而将它们定位在不同的存储区中。……