Franklin C-51编译器数据类型详解

需积分: 9 5 下载量 94 浏览量 更新于2024-09-20 收藏 273KB PDF 举报
"本文档详细介绍了Franklin C-51编译器支持的数据类型及其物理结构,涵盖了位、字符、整型、长整型、浮点型、指针、特殊功能寄存器以及相关的编程概念,如数据转换、存储器类型和中断服务程序等。" 在Franklin C-51编译器中,数据类型是编程的基础,它们决定了变量的存储空间和可取值范围。以下是各种数据类型的具体说明: 1. **位数据类型 (bit)**:只占1位,用于表示二进制的0或1,不支持位指针和位数组。位对象存储在8051 CPU的可寻址RAM中,并且在可能的情况下会被L51编译器交错安排。 2. **带符号/无符号字符 (signed/unsigned char)**:占用1字节,即8位。`signed char`的值域为-128到+127,`unsigned char`的值域为0到255。`data`、`idata`和`pdata`指针与此相关,分别指向内部、间接和程序数据存储区。 3. **带符号/无符号整型 (signed/unsigned int/short)**:占用2字节,即16位。`int`和`short`类型标量及指向`xdata`和`code`区域的指针都具有2字节长度。整型数值以特定的字节顺序存储。 4. **带符号/无符号长整型 (signed/unsigned long)**:占用4字节,即32位。长整型数值的存储遵循类似的字节顺序规则,例如值0x12345678会在四个连续的内存位置上分别存储0x12、0x34、0x56和0x78。 5. **浮点型 (float)**:占用4字节,其值域为±1.176E-38到±3.40E+38,适用于需要浮点运算的情况。 6. **指针 (pointer)**:根据目标存储区的不同,指针的长度可能为1到3字节,用于存储对象的地址。指针类型包括对不同内存区域的访问,如内部、间接、程序和扩展数据区域。 7. **特殊位 (sbit)**:1位宽,用于操作8051硬件中的特殊功能寄存器(SFR)。 8. **特殊功能寄存器 (sfr)**:1字节宽,用于直接访问8051的专用寄存器,值域为0到255。 9. **sfr16**:2字节宽,用于处理需要16位宽度的SFR操作。 在C-51编程中,数据类型的转换是自动的,例如,位变量赋值给整型变量时,位值会自动转换为整型。同时,编译器也支持手动数据类型转换。此外,还讨论了存储器模式、中断服务程序、再入函数、参数传递等高级特性,以及与PL/M51和汇编语言的接口,这些使得C-51编译器成为开发8051微控制器应用程序的强大工具。了解并熟练掌握这些数据类型和概念对于编写高效、可靠的C-51程序至关重要。
2007-09-13 上传