数组存储问题

[复制链接]
1392|6
 楼主| hsbjb 发表于 2012-8-9 18:42 | 显示全部楼层 |阅读模式
//定义一个数组:
_int8 a[4];
//再定义一个变量
_int32 b;

//显然,前者和后者都占了32个字节。那么请问他们在a和b在物理存储上有什么区别,如果没有区别,又怎么区分谁是数组,谁是单独一个变量?
火箭球迷 发表于 2012-8-9 20:47 | 显示全部楼层
小尾数处理器上有区别
大尾数没区别
sinadz 发表于 2012-8-9 20:53 | 显示全部楼层
主要区别在于使用方式,即你把它当成什么类型的来使用,另一个区别在于int8类型在大小端系统下是一致的,int32则不一样,所以你把_int8 a[4]和_int32 b之间互相复制的话,在不同的系统上得到的结果可能不一致。
txcy 发表于 2012-8-9 21:05 | 显示全部楼层
1、它们访问的最小单位不一样,一个是8bit,一个32bit;
2、它们在物理存储上极有可能不一样,这取决于不同的环境,比如:
  a. 在某些平台上会用机器字长来表达一个字节,这样a[4]就相当于int[4];
  b. 在某些平台大小端的差异,会导致a[4]和b的字节顺序是不一样的,例如一个是0x12345678,一个是0x78563412。
shenmulzb1985 发表于 2012-8-10 14:30 | 显示全部楼层
楼上的分析比较到位的,佩服,顺便也学习下的
summerlover 发表于 2012-9-11 22:18 | 显示全部楼层
不错,也跟着学习学习
wulala 发表于 2012-9-13 20:45 | 显示全部楼层
好像还是不懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

193

主题

2354

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部