单机c51个符号格式.doc_第1页
单机c51个符号格式.doc_第2页
单机c51个符号格式.doc_第3页
单机c51个符号格式.doc_第4页
单机c51个符号格式.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言对比汇编的好处简单来说,C语言对汇编语言进行了抽象,具有如下优点:更符合人类思维习惯,开发效率高、时间短;模块化;可移植性好;提供数学函数并支持浮点运算;程序可读性和可维护性强。 C语言当然也有缺点,比如实时性通常要比汇编差。在编写汇编的时候可以清楚的知道每一条指令究竟要多少个机器周期,但是在C中掌控准确的时间稍微困难一些。1、C51关键字 C51包含ANSI C关键字的同时,也有针对51单片机扩展的一些关键字。C51的扩展关键字从某种程度上体现了C51语言与标准C语言的不同。例如可重入函数、存储模式等等都是标准C中不存在的问题。ANSI C 关键字(32个关键字) auto: 自动变量 double: 双精度类型 int: 声明整型类型 struct: 声明结构体类型 break: 跳出当前循环 ,是从分号处跳出; else: 条件语句否定分支(与 if 连用) 注意if 语句后不能用分号 long: 声明长整型类型 switch :用于开关语句? case: 开关语句分支? enum: 声明枚举类型 register: 声明寄存器变量 typedef: 用以给数据类型取别名(当然还有其他作用) char: 声明字符型类型 extern: 声明变量是在其他文件正声明(也可以看做是引用变量)? return: 子程序返回语句(可以带参数,也看不带参数)? union: 声明联合数据类型 const: 声明只读变量 float: 声明浮点型类型 short: 声明短整型类型 unsigned: 声明无符号类型类型 continue: 结束当前循环,开始下一轮循环? for: 一种循环语句,for 的结构是for(起始数据;条件;循环)例如for(i=1;i大于=大于等于小于右移成员访问运算符.成员访问运算符3、C51变量运算符在C51中与标准的C语言并没有什么差异,但是变量却有一些比较关键的区别。变量的数据类型基本变量类型与标准C语言,C51的基本数据类型有char、int、short、long和float。除float外均可以使用signed和unsigned指定有符号型和无符号型,默认情况下都是signed。char占用一个字节,int和short都占2个字节,long占4个字节,float占4个字节。(记住下面这个表里面的各种数据类型的大概长度,方便编程的时候才懂得定义数据该用哪种类型)其它数据类型(指针这个相对难一些)指针类型:指针与标准C中的指针概念相同,指向一个特定的地址(地址存放的可以是变量也可以是函数)。例如:int func(int a, int b);int (*pointer)(int,int) = func;其它数据类型:enum、struct、union以及数组。C51专有数据类型:bit、sfr、sfr16以及sbit。bit变量存储在可位寻址区,保存一位二进制数。注:不能用指针指向位变量。sfr和sfr16指的是特殊寄存器变量。sbit声明的是可位寻址变量的一个位。可位寻址的变量就是存储在bdata的变量,以及部分sfr。例如:int bdata bitTest;sbit bit0 = bitTest 0;例子中的bit0就是bitTest的第0位。变量的作用域C51的变量分为局部变量和全局变量。变量的存储种类auto:默认register:编译器尽量将变量放在寄存器中。extern:全局变量,可以在多个文件中使用。static:使得局部变量的寿命与程序相同;使得全局变量只在文件内有效。变量的存储区域这个是C51与标准C语言区别很明显的地方。C51中可以指定变量存储在具体的存储器区域内:例如片内RAM、片外RAM、或者是ROM里。例如:char data test = c;定义test变量存储在直接寻址的内部RAM区。具体的存储区域如下表:存储类型存储区域data片内直接寻址RAMidata片内间接寻址RAMpdata分页寻址的片外RAMxdata片外数据存储(64K)code片内统一编址ROM(64K)bdata片内可位寻址的RAM(128位)指针与存储区域与变量相同,我们也可以指定指针的存储区域,以及指针所指向的变量的存储区域。指明了所指向变量的具体存储区域的指针效率要更高一些,占用的存储区也少一些(三字节一字节)。例如:char data *str1;/指针指向data存储区的字符变量char data * data str2;/指针本身也在data区域绝对地址的变量在C51中,可以另变量存储在存储器中的特定地址。这是通过“_at_”关键字实现的。例如:char data test _at_ 0x100;不过需要注意的是,绝对地址的变量具有如下要求: 不能初始化 bit类型不能用绝对地址 只有全局变量才可以使用绝对地址 4、C51程序结构与函数顺序结构、选择结构与循环结构顺序结构仅仅是简单的一个语句一个语句的执行。选择结构的语句有:if else,switch循环结构的语句有:for,while,do while与标准C语言一样,循环结构中可以使用break和continue,switch中可以使用break。函数在C51中,函数的声明,定义和调用的方式基本一致,这里仅仅记录一些主要的不同之处:可重入函数C51中的函数在默认情况下是不可以被多个进程共享的,而可重入函数则没有这个限制。让函数可重用的方法如下:int testFunc(int a,int b) reentrant;指定寄存器组在C51中,我们可以指定函数指定特定的寄存器组。如果为中断函数指定寄存器组,那么所有被该中断函数调用的函数都必须使用这个寄存器组。指定函数使用的寄存器组的方法是在函数原型后面加一个using n,n表示寄存器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论