数据类型占用字节数
首先强调,不同数据类型的内存占用大小不固定,与编译器有关,与CPU的位数和操作系统的位数无关。但编译器仍然受CPU的字长影响。具体常用的标准如下:
type | 32字长 | 64字长 |
---|---|---|
char | 8 | 8 |
short | 16 | 16 |
int | 32 | 32 |
long | 64 | 64 |
pointer | 32 | 64 |
对于16位或者8位的单片机而言有的可能采用16位作为int
大小端模式
定义
小端模式:数据的高字节保存在内存的高地址中,低字节保存在内存的低地址中
大端模式:数据的高字节保存在低地址中,低字节保存在高地址中
例如对于占4个字节的int数据0x12345678来说,其大小端的存储模式如下图
记忆:“小端低低”~
intel的CPU为小端模式,大部分的arm,DSP也为小端模式,有的ARM支持硬件选择大小端模式
如何测试编译器是大/小端
考虑如下代码