- 1、本文档共83页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04_C51教程
C51语言; 3.1 标识符与关键字
标识符、关键字和运算符是C语言的基本组成部分。
C语言的标识符 用来标识源程序中某个对象名字。这些对象可以是函数、变量、常量、数组、数据类型、存储方式、语句等。
一个标识符由字符串、数字和下划线等组成,第一个字符必须是字母或下划线。C语言对大小写字母敏感。 ; 关键字是一类具有固定名称和特定含义的特殊标识符,有时又称为保留字。
在编写C语言源程序时,一般不允许将关键字另作别用,也就是对于标识符的命名不要与关键字相同。
与其他计算机语言相比,C语言的关键字较少,ANSI C规定了32个关键字,表2-1按用途列出了ANSI C标准的关键字。;关键字;关键字;关键字;命令;C51编译器除了支持ANSI C标准的关键字外,还根据8051单片机的自身特点扩展了一些关键字,具体内容如下:
我们将???后面给大家简单介绍。;关键字;ANSI C的注释符 /* */,注释符不允许嵌套
C51的注释符 /* */
//后到该行结束为注释内容;; 1.char:字符类型
它有signed char(带符号数)和unsigned char(无符号数)之分,默认值为signed char。它们的长度为一个字节,用于存放一个单字节的数据。
对于singed char类型数据,其字节中的最高位表示该数据的符号,“0”表示正数,“1”表示负数,负数用补码表示,数值的表示范围是-128~127;
对于unsigned char类型数据,其字节中的所有位均用来表示数据的数值,数值的表示范围是0 ~ 255。;2.int:整型
它有signed int和unsigned int之分,默认值为signed int。它们的长度均为两个字节。
3. long:长整型
它有signed long和unsigned long之分,默认值为signed long。它们的长度均为四个字节。;4.float:浮点型
它是符合IEEE -754标准的单精度浮点型数据,在十进制中具有7位有效数字。Float类型数据占用4个字节(32位二进制数),在内存中的存放格式如下:;5.*:指针型
指针型数据不同于以上四种基本数据类型。它本身是一个变量,但在这个变量中存放的不是普通的数据,而是指向另一个数据的地址。指针变量也要占据一定的内存单元,在C51中,指针变量的长度一般为1~3个字节。
指针变量也具有类型,表示方法是在指针符号“*”的前面冠以数据类型符号,如:
char * point1 表示 point1是一个字符型的指针变量;
float * point2 表示 point2是一个浮点型的指针变量。
指针变量的类型表示该指针所指向地址中数据的类型。使用指针型变量可以方便地对8051单片机各部分物理地址直接进行操作。;6.bit:位类型
这是C51编译器的一种扩充数据类型,利用它可定义一个位变量。;一个函数中可以包含bit类型的参数,函数的返回值也可为bit类型。例如:
static bit direction_bit /*定义一个静态位变量direction_bit*/
extern bit lock_prt_port /*定义一个外部位变量lock_prt_port*/
bit bfunc(bit b0,bit b1);/*定义一个返回位型值的函数bfunc,函
数中包含有两个位型参数b0和b1*/
{
return(b1) /*返回一个位型值b1*/
} ;注意:
如果在函数中禁止使用中断(# pragma disable)或者函数中包含有明确的寄存器组切换(using n),则该函数不能返回位型值,否则在编译时会产生编译错误。
另外,不能定义位指针,也不能定义位数组。 ;7.sfr: 特殊功能寄存器
8051系列单片机具有多种内部寄存器,其中一些是特殊功能寄存器,如定时器方式控制寄存器TMOD、中断允许控制寄存器IE等。
为了能够直接访问这些特殊功能寄存器,C51编译器扩充了关键字sfr和sfr16,利用这种扩充关键字可以在C语言源程序中直接对8051单片机的特殊功能寄存器进行定义。
利用关键字sfr,可以定义8051单片机的所有内部8位特殊功能寄存器。sfr型数据占用一
文档评论(0)