1.1 C-51 编译器支持下列数据类型:
数 据 类 型
长 度
值 域
bit
1 字节
0 或 1
signed char
1 字节
-128~+127
unsigned char
1 字节
0~255
signed int
2 字节
-32768~+32867
unsigned int
2 字节
0~65535
signed long
4 字节
-2147483648~+2147483647
unsigned long
4 字节
0~4294967295
float
4 字节
±1.176E-38~±3.40E+38
指针
1~3 字节
对象地址
sbit
1 位
0 或 1
sfr
1 字节
0~255
sfr16
2 字节
0~65535
编译的数据类型(如结构)包含上表所列的数据类型。由于8051系列是8位机,因而不存在字节校准问题。这意味着数据结构成员是顺序放置的。 数据类型的转换:当计算结果隐含着另外一种数据类型时,数据类型可以自动进行转换,例如,将一个位变量赋给一个整型变量时,位型值自动转换为整型值,有符号变量的符号也能自动进行处理。这些转换也可以用C语言的标准指令进行人工转换。
1.2
数据类型的物理结构
1.2.1 bit
“bit”类型只有1位,不允许有位指针和位数组。位对象始终位于8051
CPU的可寻址RAM空间。如果程序控制流允许,L51将位对象交迭。
1.2.2 signed/unsigned char;data/idata/pdata 指针
“char”类型标量和基于存贮器的“data/idata/pdata”指针具有1个字节长度(8 bits)。
1.2.3 signed/unsigned int/short;xdata/code 指针
“int”和“short”类型标量及指向xdata/code区域的指针具有2字节长度(16
bits)。
整型值(或偏移)0x1234以下面方式保存在内存中:
地址: +0 +1
内容: 0x12 0x34 1.2.4 signed/unsigned
long
“long”类型标量