3.4 C51的变量类型

数据类型是C51语言最基本的组成部分。在C51中,每个变量在使用之前必须定义其数据类型。C51语言中的数据类型分为基本数据类型和聚合数据类型,这里首先介绍基本数据类型。

3.4.1 C51的数据类型

C51的基本数据类型有整型(int)、浮点型(float)、字符型(char)、无值型(void)。在基本数据类型中,除void类型外,其前面均可以有各种修饰符。修饰符用来改变基本类型的意义,以便更准确地适应各种情况的需求。

常用的修饰符有signed(有符号)、unsigned(无符号)、long(长型符)、short(短型符)。在C51语言中,所有数据类型的字长和取值范围如表3.2所示。

3.4 C51的变量类型 - 图1

注意表中各个数据类型组合的字长和取值范围是假定CPU的字长为16bit。

从表中可以看出,修饰符signed、short、long和unsigned可以修饰字符型和整型两种基本类型。此外,修饰符long还可用于float型。

说明C51除了继承了标准C语言中基本的数据类型外,又兼具其本身的特点,如在C51语言中int和short,float和double具有相同的取值范围和含义。

一般来说,编译环境对整数类型的默认定义是有符号数,singed修饰符可以省略。为了使用方便,C51编译程序允许使用整型简写形式,如下所示。

❑short int简写为short

❑long int简写为long

❑unsigned short int简写为unsigned short

❑unsigned int简写为unsigned

❑unsigned long int简写为unsigned long

另外,某些编译环境允许将unsigned用于浮点型,如unsigned float。但这种数据类型并不通用,在程序移植时会出现问题,建议一般不要采用。

此外,C51语言还提供了几种聚合类型(aggregate types),包括数组、指针、结构、联合(共用体)、枚举和位域。这几种聚合类型将在后面章节中陆续介绍,这里首先介绍常用的基本类型。