C51关键字

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

猜你喜欢

转载自www.cnblogs.com/tianqiang/p/9251491.html
C51