8051单片机基础5:数据类型占用空间大小及取值范围
参考资料:
Keil > Help > uVision Help > Cx51 Compiler User’s Guide > Language Extensions > Data Types
Keil > Help > uVision Help > Arm Compiler 5 User’s Guides > Compiler User Guide > C and C++ Implementation Details
C语言中使用变量时需要先定义数据类型,定义数据类型后,编译器自动分配适当的存储空间。比如定义unsigned char型变量,分配1个字节的存储空间。
在不同MCU平台使用C语言编写代码时,需要注意基本数据类型占用字节数,比如Cx51和ARM-C在定义signed int类型时占用的字节分别为2字节和4字节。
Cx51和ARM-C存在的主要差异有:
数据类型 | Cx51 | ARM-C |
---|---|---|
signed int | 2字节 | 4字节 |
unsigned int | 2字节 | 4字节 |
double | 4字节 | 8字节 |
point | 3字节(默认) | 4字节 |
在Cx51编译器环境下,支持的基本数据类型大小及取值范围如下表:
其中bit, sbit, sfr 和 sfr16四种数据类型在标准C语言中是没有的,仅在Cx51环境下存在。
作为对比,ARM-C的基本数据类型大小及取值范围如下表:
关于作者
微信公众号:萤火虫的电子笔记
分享嵌入式软件、硬件知识;
关注8051单片机、STM32、Linux、AltiumDesigner、Vscode、Keil和物联网等相关领域。
欢迎转发,请注明出处及作者。关注微信公众号,获取最新文章动态。