理解KEIL C51库函数:存储模式与指针

4星 · 超过85%的资源 需积分: 9 10 下载量 58 浏览量 更新于2024-07-23 收藏 113KB DOC 举报
"KEIL C51库函数是用于8051微控制器的编程工具,提供了对标准C语言的扩展,以适应8051系列CPU的硬件特性。这些扩展包括特定的存储类型、存储模式、位变量、特殊功能寄存器(SFR)、指针类型和函数属性等。C51 V4.0版本包含19个扩展关键字,如_at_、idata、sfr等,用于在不同存储区域定义变量和函数。" 在C51编程中,了解和掌握这些扩展关键字至关重要,因为它们直接影响程序的运行效率和内存管理。其中,存储模式定义了未指定存储类型的变量和函数参数的默认存储位置,包括Small、Compact和Large三种模式。Small模式适合小规模程序,所有变量存于内部RAM,访问速度快但空间有限。Compact模式允许在外部RAM的一页中存储变量,空间比Small模式更宽裕,但速度稍慢。Large模式则提供最大64KB的外部RAM空间,适合大型程序,但访问速度最慢。 C51中的指针分为一般指针和存储器指针。一般指针与标准C相同,可以声明存储类型,如long*state。存储器指针则专门用于指定变量在特定存储区域的地址,如char*xdata ptr,其中ptr本身存储在外部RAM,而它所指向的数据可以存放在任何存储器中。C51的一般指针通常占用3个字节来存储存储器类型、偏移地址和段地址。 此外,C51还支持位变量和位寻址,这在处理8051的位操作时非常有用,因为8051可以直接对单个位进行读写操作。特殊功能寄存器(SFR)是8051微控制器特有的,C51通过关键字可以直接访问这些寄存器,如#define或sfr声明。 函数属性在C51中允许程序员指定函数的存储类别和调用约定,以优化代码执行和内存使用。例如,使用关键字_reentrant_可以声明函数为可重入的,这对于中断服务程序和多线程环境很重要。 理解并熟练运用这些C51库函数和扩展关键字对于开发8051微控制器的嵌入式系统是至关重要的,能够帮助程序员更高效地利用硬件资源,编写出运行更快、更节省内存的程序。