最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

第6章 C语言的标识符

来源:动视网 责编:小OO 时间:2025-09-25 21:28:45
文档

第6章 C语言的标识符

第6章C语言的标识符、关键字和数据类型6.1标识符和关键字标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、常量、数组等。一个标识符由字符串、数字和下划线等组成,第一个字符必须是字母或下划线,通常以下划线开头的标识符是编译系统专用的,因此在编写C语言源程序时一般不要使用以下划线开头的标识符,而将下划线用作分段符。C51编译器规定标识符最长可达255个字符,但只有前面32个字符在编译时有效,因此在编写源程序时标识符的长度不要超过32个字符,这对于一般应用程序来说
推荐度:
导读第6章C语言的标识符、关键字和数据类型6.1标识符和关键字标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、常量、数组等。一个标识符由字符串、数字和下划线等组成,第一个字符必须是字母或下划线,通常以下划线开头的标识符是编译系统专用的,因此在编写C语言源程序时一般不要使用以下划线开头的标识符,而将下划线用作分段符。C51编译器规定标识符最长可达255个字符,但只有前面32个字符在编译时有效,因此在编写源程序时标识符的长度不要超过32个字符,这对于一般应用程序来说
第6章  C语言的标识符、关键字和数据类型

6.1  标识符和关键字

标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、常量、数组等。一个标识符由字符串、数字和下划线等组成,第一个字符必须是字母或下划线,通常以下划线开头的标识符是编译系统专用的,因此在编写C语言源程序时一般不要使用以下划线开头的标识符,而将下划线用作分段符。C51编译器规定标识符最长可达255个字符,但只有前面32个字符在编译时有效,因此在编写源程序时标识符的长度不要超过32个字符,这对于一般应用程序来说已经足够了。C语言是大小写敏感的一种高级语言,如果我们要定义一个时间“秒”标识符,可以写做“sec”,如果程序中有“SEC”,那么这两个是完全不同定义的标识符。

关键字则是编程语言保留的特殊标识符,有时又称为保留字,它们具有固定名称和含义,在C语言的程序编写中不允许标识符与关键字相同。与其他计算机语言相比,C语言的关键字较少,ANSI C标准一共规定了32个关键字,见表6-1。

关键字用途说明
auto存储种类说明用以说明局部变量,缺省值为此
break程序语句退出最内层循环体
case程序语句switch语句中的选择项

char数据类型说明单字节整型数或字符型数据
const存储类型说明在程序执行过程中不可更改的常量值
continue程序语句转向下一次循环
default程序语句switch语句中的失败选择项

do程序语句构成do…while循环结构

double数据类型说明双精度浮点数
else程序语句构成if…else选择结构

enum数据类型说明枚举
extern存储种类说明在其他程序模块中说明了的全局变量
float数据类型说明单精度浮点数
for程序语句构成for循环结构

goto程序语句构成goto转移结构

if程序语句构成if…else选择结构

int数据类型说明基本整型数
long数据类型说明长整型数
register存储种类说明使用CPU内部寄存的变量

return程序语句函数返回
short数据类型说明短整型数
signed数据类型说明有符号数,二进制数据的最高位为符号位
sizeof运算符计算表达式或数据类型的字节数
static存储种类说明静态变量
struct数据类型说明结构类型数据
switch程序语句构成switch选择结构

typedef数据类型说明重新进行数据类型定义
union数据类型说明联合类型数据
unsigned数据类型说明无符号数据
void数据类型说明无类型数据
volatile数据类型说明该变量在程序执行中可被隐含地改变
while程序语句构成while和do…while循环结构

表6-1  ANSI C标准一共规定了32个关键字

Keil C51编译器的关键字除了有ANSI C标准的32个关键字外还根据51单片机的特点扩展了相关的关键字。在Keil C51开发环境的文本编辑器中编写C程序,系统可以把保留字以不同颜色显示,缺省颜色为蓝色。表6-2为Keil C51编译器扩展的关键字。

关键字用途说明
bit位标量声明声明一个位标量或位类型的函数
sbit位变量声明声明一个可位寻址变量
sfr特殊功能寄存器声明声明一个特殊功能寄存器(8位)

sfr16特殊功能寄存器声明声明一个16位的特殊功能寄存器

data存储器类型说明直接寻址的8051内部数据存储器

bdata存储器类型说明可位寻址的8051内部数据存储器

idata存储器类型说明间接寻址的8051内部数据存储器

pdata存储器类型说明“分页”寻址的8051外部数据存储器

xdata存储器类型说明8051外部数据存储器

code存储器类型说明8051程序存储器

interrupt中断函数声明定义一个中断函数
reetrant再入函数声明定义一个再入函数
using寄存器组定义定义8051的工作寄存器组

表6-2  Keil C51编译器扩展的关键字

6.2  在51 MCU DEMO试验板上实现:使右侧4个LED数码管从左至右显示“1234”

6.2.1  实现方法

第1步:向P0口送“4”的字形码,向P2口送数0xfe以点亮个位数码管,延时2mS维持数码管点亮状态;第2步:向P0口送“3”的字形码,向P2口送数0xfd以点亮十位数码管,延时2mS维持数码管点亮状态;第3步:向P0口送“2”的字形码,向P2口送数0xfb以点亮百位数码管,延时2mS维持数码管点亮状态;第4步:向P0口送“1”的字形码,向P2口送数0xf7以点亮千位数码管,延时2mS维持数码管点亮状态。重复执行以上第1~4步,即可在数码管上得到稳定清晰的显示。

6.2.2  源程序文件

在D盘建立一个文件目录(CS6-1),然后建立CS6-1.uv2的工程项目,最后建立源程序文件(CS6-1.c)。输入下面的程序:

#include         //1

unsigned char dis0=0x99;    //2

unsigned char dis1=0xb0;    //3

unsigned char dis2=0xa4;    //4

unsigned char dis3=0xf9;    //5

/*=====================6===============*/

void delay(void)            //7

{                        //8

    unsigned int i,j;        //9

    for(i=0;i<2;i++)        //10

    {                    //11

        for(j=0;j<121;j++)    //12

        {;}                //13

    }                    //14

}                        //15

//=====================16===========

void main(void)            //17

{                        //18

while(1)                    //19

    {                    //20

P0=dis0;                //21

P2=0xfe;                //22

delay();                //23

    P0=dis1;                //24

    P2=0xfd;                //25

delay();                //26

P0=dis2;                //27

P2=0xfb;                //28

delay();                //29

P0=dis3;                //30

    P2=0xf7;                //31

delay();                &,amp;nb, sp;//32

    }                    //33

}                        //34

图6-1为keil c51软件编译时的界面,下部的输出窗口显示0错误、0警告。51 MCU DEMO试验板接通5V稳压电源,将生成的CS6-1.hex文件下载到试验板上的单片机S51中,注意,标示“LEDMOD_DATA”及“LEDMOD_COM”的双排针应插上短路块。我们发现右侧4个LED数码管从左至右清晰显示“1234”。

图6-1  keil c51软件编译时的界面

6.2.3  程序分析解释

序号1:包含头文件REG51.H。

序号2:定义无符号字符型变量,其标识符为dis0,并赋初值0x99。

序号3:定义无符号字符型变量,其标识符为dis1,并赋初值0xb0。

序号4:定义无符号字符型变量,其标识符为dis2,并赋初值0xa4。

序号5:定义无符号字符型变量,其标识符为dis3,并赋初值0xf9。

序号6:程序分隔。

序号7:定义函数名为delay的延时子函数(延时长度约为2mS),其标识符为delay。

序号8:delay延时子函数开始。

序号9:定义两个无符号整形变量i,j。

序号10~14:两个for语句循环体,作用是延时。

序号15:delay延时子函数结束。

序号16:程序分隔。

序号17:定义函数名为main的主函数,其标识符为main。

序号18:main的主函数开始。

序号19:while循环语句,这里进行无限循环。

序号20:while循环语句开始。

序号21:将dis0变量(显示4)送往P0口。

序号22:P2口送数0xfe,目的是点亮个位数码管。

序号23:调用延时子函数模块,维持点亮时间,便于观察。

序号24:将dis1变量(显示3)送往P0口。

序号25:P2口送数0xfd,目的是点亮十位数码管。

序号26:调用延时子函数模块,维持点亮时间,便于观察。

序号27:将dis2变量(显示2)送往P0口。

序号28:P2口送数0xfb,目的是点亮百位数码管。

序号29:调用延时子函数模块,维持点亮时间,便于观察。

序号30:将dis3变量(显示1)送往P0口。

序号31:P2口送数0xf7,目的是点亮千位数码管。

序号32:调用延时子函数模块,维持点亮时间,便于观察。

序号33:while循环语句结束。

序号34:main的主函数结束。

可见我们定义的数据类型、函数、变量等均未与C语言的关键字发生冲突。

下面我们做一下修改,将dis0改为do,将delay改为switch。再进行编译、连接,结果出现了一大堆的错误(见图6-2)。因此切记,在程序编写中不允许标识符与C语言的关键字相同。

图6-2  出现了一大堆的错误

文档

第6章 C语言的标识符

第6章C语言的标识符、关键字和数据类型6.1标识符和关键字标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、常量、数组等。一个标识符由字符串、数字和下划线等组成,第一个字符必须是字母或下划线,通常以下划线开头的标识符是编译系统专用的,因此在编写C语言源程序时一般不要使用以下划线开头的标识符,而将下划线用作分段符。C51编译器规定标识符最长可达255个字符,但只有前面32个字符在编译时有效,因此在编写源程序时标识符的长度不要超过32个字符,这对于一般应用程序来说
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top