Keil C51单片机编程的关键字详解
5星 · 超过95%的资源 需积分: 16 127 浏览量
更新于2024-09-13
收藏 157KB PDF 举报
"这篇内容主要介绍了在使用AXIS开发板时可能会遇到的单片机编程中的关键字,包括了ANSI标准定义的32个关键字和Keil C51编译器特有的扩展关键字,以及标准C语言的数据类型关键字。"
在单片机编程中,关键字是具有特殊含义的保留词汇,不能作为变量名或者函数名使用。这些关键字在程序设计中起着至关重要的作用,它们定义了变量的类型、控制流程、存储类别等。下面将详细介绍标题和描述中提到的知识点。
一、ANSI标准定义的关键字(共32个):
1. autodoubleintstruct:这些关键字用于定义数据类型,如自动变量(auto)、双精度浮点型(double)、整型(int)和结构体(struct)。
2. breakelselongswitchcase:这些关键字用于控制流程,如中断循环(break)、选择性执行(else)、长整型(long)、多路选择(switch)和条件分支(case)。
3. enumregistertypedef:用于创建自定义枚举类型(enum)、指定变量存储类别(register)以及定义新数据类型别名(typedef)。
4. charexternreturnunionconst:声明字符型变量(char)、外部变量(extern)、返回语句(return)、联合体(union)以及常量(const)。
5. floatshortunsignedcontinueforsignedvoiddefaultgotosizeof:声明浮点型(float)、短整型(short)、无符号类型(unsigned)、继续循环(continue)、for循环、有符号类型(signed)、空类型(void)、默认(default)、跳转语句(goto)和计算数据大小(sizeof)。
6. volatiledoifwhilestatic:声明易变类型(volatile)、do-while循环、条件判断(if)和循环(while),以及静态变量(static)。
二、Keil C51扩展的关键字:
Keil C51是专为8051系列单片机设计的C编译器,它添加了一些额外的关键字来适应8位微控制器的特性:
1. _at_:用于指定变量在内存中的确切位置。
2. alien:与外部设备交互的特定关键字。
3. bdata,data,idata,pdata:分别表示不同存储区的变量。
4. bit:声明位变量,直接操作单片机的位地址。
5. code:声明位于程序存储器的变量。
6. compact,large,small:控制数据存储方式,优化存储空间。
7. far:用于访问远地址空间。
8. interrupt:声明中断服务函数。
9. sbit,sfr:声明位寄存器和特殊功能寄存器。
10. sfr16:声明16位的特殊功能寄存器。
11. reentrant:支持可重入函数,确保多任务环境下的正确运行。
12. _priority_:设置中断优先级。
13. task:在实时操作系统中定义任务。
14. using:指定当前代码使用的数据空间。
15. xdata:声明位于扩展数据存储区的变量。
三、标准C数据类型关键字:
1. char:声明字符型变量,通常占用1字节。
2. double:声明双精度浮点型,占用8字节。
3. enum:创建枚举类型,允许自定义整数常量集合。
4. float:声明单精度浮点型,占用4字节。
5. int:声明整型,根据编译器和平台不同,一般为4字节。
6. long:声明长整型,通常比int大,可能是4或8字节。
7. short:声明短整型,通常小于int,2字节。
8. signed:声明有符号类型,可以是正负值。
9. struct:声明结构体,组合多种数据类型的复合类型。
10. union:声明联合体,成员共享同一块内存区域。
11. unsigned:声明无符号类型,只能为非负值。
12. void:空类型,用于函数无返回值或未知类型的指针。
这些关键字是C语言的基础,理解并熟练运用它们对于编写高效、可靠的单片机程序至关重要。在使用AXIS开发板进行项目开发时,了解这些关键字的具体用法和含义,能够帮助开发者更好地利用硬件资源,编写出符合目标系统需求的代码。
2020-07-20 上传
2020-08-27 上传
2012-10-08 上传
2020-10-19 上传
2012-09-30 上传
点击了解资源详情
点击了解资源详情
海阔天空_栋
- 粉丝: 20
- 资源: 10
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍