2016-12-17 18:22:22 | 人围观 | 评论:
C51支持C语言的所有标准数据类型,除此之外,还加入了用于专门访问80C51硬件的数据类型,如:bit、sbit、sfr和sfrl6。这些数据类型在ANSIC中是没有的。
bit:声明位变量,其值为0或1。
sbit:声明可位寻址变量中的某个位变量,其值为0或1
sfr:声明特殊功能寄存器,地址范围为:0~255。
sfr16:同上,地址范围为0~65535。
C51编译器支持表5-1列出的数据类型。除了这些变量类型外,变量能被组合到结构、联合和数组中。兼容ANSIC标准的数据类型可通过指针访问,但扩展的bit、sbit、sfr和sfrl6数据类型专用于访问80C51的特殊功能寄存器,故不能通过指针进行访问。
表5-1 C51数据类型
数据类型<?XML:NAMESPACE PREFIX = O /> | 位 | 字节 | 值的范围 |
char | 8 | 1 | -128~127 |
unsigned char | 8 | 1 | 0~255 |
enum | 16 | 2 | -32768~32767 |
short | 16 | 2 | -32768~32767 |
unsigned short | 16 | 2 | 0~65535 |
int | 16 | 2 | -32768~32767 |
unsigned int | 16 | 2 | 0~65535 |
long | 32 | 4 | -2147483648~2147483647 |
unsigned long | 32 | 4 | 0~4294967295 |
float | 32 | 4 | ±1.175494E-38~±3.402823E+38 |
bit | 1 | - | 0,1 |
sbit | 1 | - | 0,1 |
sfr | 8 | 1 | 0~255 |
sfr16 | 16 | 2 | 0~65535 |