分隔符和修饰符是计算机语言中最重要的组成部分,这里介绍C51语言中的分隔符和const修饰符。
分隔符在C51程序语言中起辅助标识和分界的作用。一般分为两种,简单分隔符和复合分隔符。简单分隔符是除字母、数字、下画线以外的单个ASCII字符,如+、-、*、/、!、|、<、>、=、.、,、:、;、‘、#等。复合分隔符是特定字符的某种组合,例如<=、!=、>=、{、}、[、]、(、)等。
分隔符常用于数组、语句等情况,下面举出常用的分隔符示例。
●用“;”进行隔离语句,例如int r;
●用“[ ]”对数组说明,例如char ch[ ]=''Hello Word!'';
●用“( )”进行隔离,例如s=area(r);
●用“,”进行隔离,例如char ch1,ch2,ch3;
●用“{}”进行隔离复合语句,例如for {i=0;i<100;i++};
●用“*”做指针,例如char *ponter;
●用“#”做预处理伪指令,例如#define PI 3.1415926;
●用“^”标识特殊寄存器的位,例如sbit P00=P0^0。
const修饰符主要用来定义常量或变量。其定义格式为“const <类型说明符> <常量名>=<常量值>;”。示例如下:
const double PI=3.1415926;
在C51语言中,用关键字const修饰的是一类特殊的常量,一般称为符号常量或const变量。从编译的角度看,程序在编译时,将视const变量为一个常量,系统不为其分配内存。在程序中遇到该const变量时,将用定义时的初值来代替。
这里需要注意的是,使用const修饰的变量不能在程序中修改其值,这样一方面可以防止程序运行时该值被意外修改,另一方面也可以对于程序中经常使用的值做统一修改,便于调试程序。
下面举一个例子。
这段程序可在Keil μVision3集成开发环境中运行,执行结果如下:
the area=12.560000,length=12.560000
该程序中,将圆周率定义为double型的const变量。主程序执行时,在遇到该变量时自动以double型的值3.14来代替。
另外,在C51语言中,宏定义和const变量有些类似。宏定义在后面的章节中会具体介绍,这里仅指出其和const变量的区别。
宏定义在程序预处理时只对上下文进行简单的文本代替,并不做具体的语法检查。示例如下:
#define count 20;
程序在编译时,将遇到的字符串count全部替换为字符串20。这在使用时会有一些问题,如这个变量是整型数据还是浮点型数据呢,很容易引起混乱。同样是定义这个常量,使用const变量,可以如下定义。
这样,就很容易区分其数据类型了。因此,在这种情况下,使用const变量要比宏定义简洁清楚。