关键字 ;用 途 ; 说 明 auto ;存储种类说明 ;用以说明局部变量,缺省值为此 break ;程序语句 ;退出最内层循环 case ;程序语句 ;Switch语句中的选择项 char ;数据类型说明 ;单字节整型数或字符型数据 const ;存储类型说明 ;在程序执行过程中不可更改的常量值 continue ;程序语句 ;转向下一次循环 default ;程序语句 ;Switch语句中的失败选择项 do ;程序语句 ;构成do..while循环结构 double ;数据类型说明 ;双精度浮点数 else ;程序语句 ;构成if..else选择结构 e
C51是基于ANSI C的一个扩展版本,主要用于8位微控制器,如AT89C51。在C51编程中,关键字是语言的基本构建块,它们具有特定的含义和用途,帮助开发者构建和控制程序的行为。以下是对C51中的一些关键字的详细解释:
1. `auto`:用于声明局部变量,这是C51中变量的默认存储类别,变量在函数调用结束时自动销毁。
2. `break`:在循环或开关语句中使用,用于强制跳出当前的最内层循环。
3. `case`:在`switch`语句中定义一个选项,当`switch`表达式的值匹配时,执行相应的代码块。
4. `char`:声明一个单字节的整型数或字符型数据,它可以存储一个ASCII字符。
5. `const`:声明一个常量,其值在程序运行期间不能改变。
6. `continue`:在循环中使用,跳过当前循环的剩余部分,继续下一次循环迭代。
7. `default`:在`switch`语句中作为默认分支,当没有匹配任何`case`时执行。
8. `do...while`:创建一个循环,至少执行一次,然后根据条件判断是否继续执行。
9. `double`:声明一个双精度浮点数,比单精度浮点数(`float`)更精确。
10. `else`:与`if`一起使用,形成一个条件结构,当`if`的条件不满足时,执行`else`后的代码块。
除了上述关键字,C51还引入了一些特有的关键字,如:
1. `enum`:定义枚举类型,允许创建一组具有特定名称的整数值。
2. `extern`:声明在其他源文件中定义的全局变量,使得这些变量在多个文件之间可见。
3. `float`:声明一个单精度浮点数。
4. `for`:创建一个计数循环,通常包含初始化、条件检查和更新步骤。
5. `goto`:创建无条件跳转,不推荐使用,因为可能会导致难以理解和调试的代码。
6. `if...else`:条件语句,根据条件决定执行哪个代码块。
7. `int`:声明基本整型数,通常占用16位。
8. `long`:声明长整型数,比`int`占用更多的位。
9. `register`:建议将变量存储在CPU寄存器中,以提高访问速度,但编译器可能不会总是遵守这个请求。
10. `return`:从函数中返回一个值,或者在无返回值函数中结束函数执行。
11. `short`:声明短整型数,通常占用16位的一半。
12. `signed`:声明有符号整数,最高位为符号位。
13. `sizeof`:操作符,用于计算类型或表达式的字节数。
14. `static`:声明静态变量,它们在程序执行期间保持其值,并且仅在声明它们的函数或块中可见。
15. `struct`:声明结构体类型,可以组合多个不同类型的变量。
16. `switch`:创建多分支选择结构。
17. `typedef`:为现有类型创建一个新的别名。
18. `union`:声明联合类型,所有成员共用相同内存空间。
19. `unsigned`:声明无符号整数,最高位不表示符号。
20. `void`:用于声明无类型参数或无返回值的函数。
21. `volatile`:声明一个变量,其值可能在程序执行中被隐式改变,例如由硬件中断处理程序修改。
22. `while`:创建一个条件循环,先检查条件,然后根据条件执行循环体。
C51还包含一些特定于微控制器的扩展关键字,如`bit`、`sbit`、`SFR`等,用于位操作、位地址变量和特殊功能寄存器的声明。这些关键字让开发者可以直接访问和操作微控制器的硬件资源。
特殊功能寄存器(SFR)如`ACC`、`PSW`、`SP`、`IE`、`IP`、`P0`至`P3`等,是AT89C51芯片中用于控制和交互硬件功能的重要组成部分。理解这些关键字和寄存器的用途是编写有效C51程序的关键。