c\c++ 复习基础要点07---内存存储 大端模式、小端模式
先不管大端法还是小端法存储,计算机在内存存放数据的顺序都是从低地址到高地址。
所不同的是首先取低字节的数据存放在低地址还是取高字节数据存放在低地址。
若首先取高字节的数据放在低地址,则是大端法;
若首先取低字节的数据存放在低地址,则是小端;
例如数据0x1234567 (左边是高字节,右边是低字节)
大端法存放:
内存地址依次为: 0x0001 0x0002 0x0003 0x0004
对应的数据存放依次为: 0x01 0x23 0x45 0x67
小端法存放:
内存地址依次为: 0x0001 0x0002 0x0003 0x0004
对应的数据存放依次为:0x67 0x45 0x23 0x01
union型数据所占的空间等于其最大的成员所占的空间。对union型的成员的存取都是
相对于该联合体基地址的偏移量为 0处开始,也就是联合体的访问不论对哪个变量的存取都
是从 union的首地址位置开始,因此,大小端模式存储将会直接影响union内成员的值。
例子:
#include<stdio.h>
union check
{
int i;
char ch;
};
void main()
{
check c;
c.i=1;
printf(“%d\n”,c.ch);
}
如果存储为大端模式,则输出为0,如果为小端模式,则输出为1
补充:软件开发 , C++ ,