C51 语法与标准 C 语法的主要区别 
1. 数据类型扩展 
标准 C: 
提供基本数据类型(如 char、int、float、double)和一些扩展类型(如 short、long)。 
数据类型主要用于描述变量的存储大小和范围。 
C51: 
在标准 C 的基础上增加了对 8051 单片机硬件特性的支持: 
sfr:用于定义 8051 的特殊功能寄存器(Special Function Register, SFR)。 
sbit:用于定义 SFR 中的单个位。 
bit:用于定义变量或函数参数中的位类型。 
2. 内存模型 
标准 C: 
内存模型通常分为栈(stack)、堆(heap)和全局数据区。 
不区分存储空间的物理位置(如 RAM 或 ROM)。 
C51: 
为了适应 8051 单片机的内存结构,C51 引入了内存模型的概念: 
idata:用于访问内部 RAM(Internal Data Memory)。 
pdata:用于访问外部 RAM 的低位部分(Page 0)。 
xdata:用于访问外部 RAM 的高位部分(Page 1 到 Page 7)。 
code:用于访问程序存储器(ROM)。 
3. 函数调用机制 
标准 C: 
函数调用通常通过栈来传递参数和返回地址。 
C51: 
在某些情况下,C51 允许使用寄存器直接传递参数(如使用 reentrant 关键 
字),以提高执行效率。 
———————————————— 
版权声明:本文为CSDN博主「wx19818900368」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 
原文链接:https://blog.csdn.net/q380619682/article/details/152309220 
 
 |   
     
  
 |