C51关键字
C51包含ANSI C关键字的同时,也有针对51单片机扩展的一些关键字。C51的扩展关键字从某种程度上体现了C51语言与标准C语言的不同。例如可重入函数、存储模式等等都是标准C中不存在的问题。ANSI C 关键字auto: 自动变量double: 双精度类型int: 声明整型类型struct: 声明结构体类型break: 跳出当前循环else: 条件语句否定分支(与 if 连用)long: 声明长
C51包含ANSI C关键字的同时,也有针对51单片机扩展的一些关键字。C51的扩展关键字从某种程度上体现了C51语言与标准C语言的不同。例如可重入函数、存储模式等等都是标准C中不存在的问题。
ANSI C 关键字
- auto: 自动变量
- double: 双精度类型
- int: 声明整型类型
- struct: 声明结构体类型
- break: 跳出当前循环
- else: 条件语句否定分支(与 if 连用)
- long: 声明长整型类型
- switch :用于开关语句?
- case: 开关语句分支??
- enum: 声明枚举类型
- register: 声明寄存器变量
- typedef: 用以给数据类型取别名(当然还有其他作用)
- char: 声明字符型类型
- extern: 声明变量是在其他文件正声明(也可以看做是引用变量)??
- return: 子程序返回语句(可以带参数,也看不带参数)??
- union: 声明联合数据类型
- const: 声明只读变量
- float: 声明浮点型类型
- short: 声明短整型类型
- unsigned: 声明无符号类型类型
- continue: 结束当前循环,开始下一轮循环?
- for: 一种循环语句(可意会不可言传)
- signed: 生命有符号类型类型
- void: 声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
- default: 开关语句中的“其他”分支?
- goto: 无条件跳转语句????
- sizeof: 计算数据类型长度??
- volatile: 说明变量在程序执行中可被隐含地改变?
- do: 循环语句的循环体
- while: 循环语句的循环条件
- static: 声明静态变量
- if: 条件语句
C51扩展关键字
_at_ | 为变量定义存储空间绝对地址 |
alien | 声明与PL/M51兼容的函数 |
bdata | 可位寻址的内部RAM |
bit | 位类型 |
code | ROM |
compact | 使用外部分页RAM的存储模式 |
data | 直接寻址的内部RAM |
idata | 间接寻址的内部RAM |
interrupt | 中断服务函数 |
large | 使用外部RAM的存储模式 |
pdata | 分页寻址的外部RAM |
_priority_ | RTX51的任务优先级 |
reentrant | 可重入函数 |
sbit | 声明可位寻址的特殊功能位 |
sfr | 8位的特殊功能寄存器 |
sfr16 | 16位的特殊功能寄存器 |
small | 内部RAM的存储模式 |
_task_ | 实时任务函数 |
using | 选择工作寄存器组 |
xdata | 外部RAM |