#include <stdio.h>
#include <string.h>
typedef struct
{
int date;
char str[20];
} data;
int main()
{
//VC6.0下,char = 1字节,int = 4字节(其它编译器自行调整)
char ch[] = {0x12,0x34,0x56,0x78}; //构造个顺序的连续空间,从低到高
data *dx = new data;
printf("ch[0]:%d\nch[3]:%d\n",&ch[0],&ch[3]);
int *p = (int*)ch; //将ch所构造的空间的数值给转换成int型
printf("\n%X\n\n",*p); //输出结果会是反的,ch[3]...ch[0]
//这个就和x86框架CPU相关了,当转换成int型后,高位的值就取高位的数值
//\x01\x00\x00\x00 为4字节,刚好拷满一个int的内存空间
memcpy(dx,"\x01\x00\x00\x00Hello World!\x00",17);
//copy是从内存的低地址拷下去的,转换成int后就是\x00\x00\x00\x01 == 1
printf("dx->date:%d\ndx->str :%s\n",dx->date,dx->str);
delete dx;
return 0;
}
x86框架CPU的特点,高位存高位数值
最新推荐文章于 2020-07-06 19:46:17 发布