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
|
|