打印

关于栈的一些问题!

[复制链接]
2115|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
ayb_ice| | 2013-5-30 11:28 | 只看该作者
风马牛不相及的事

使用特权

评论回复
评论
ericyang001 2013-6-4 09:55 回复TA
@ayb_ice 恳请分析一下4#,谢谢! 
板凳
liusensen| | 2013-5-30 11:51 | 只看该作者
不明白                        

使用特权

评论回复
地板
ericyang001|  楼主 | 2013-6-3 16:17 | 只看该作者

接着问:

1.假定一个32位无符号整形变量INT32U_Val = 0x12345678,那么它在小端模式+递减堆栈的情况下,存储就如同上图左边,正确?
2.假定一个8位无符号指针INT8U_ptr = (INT8U *)&INT32U_Val,那么这个指针指向的是“78”这个字节,正确?
3.INT8U_ptr ++后,它指向的是“56”这个字节,正确?
4.如果2,3正确,那么INT8U_ptr这个指针一直自加的情况下,会从栈底(高地址处)underflow?
  如果2,3不正确,那么正确的情况是什么?
  
================================================
5.假定这个栈先后进了一个32位无符号整形变量INT32U_Val = 0x12345678,和一个8位整形数组INT8U_Array[4] = {1, 0, 0, 0},那么存储就如同上图左边,正确?
6.如果5正确,那么数组的指针一直自加就会指向比它早进栈的INT32U_Val?
7.如果6正确,那么这个结果和我印象中“一个变量的指针一直自加会指向下一个定义的变量”不符,是我的印象不对?

使用特权

评论回复
5
highgear| | 2013-6-3 21:59 | 只看该作者
这个问题与硬件密切相关, 所以不能脱离具体硬件一概而论。

使用特权

评论回复
6
ayb_ice| | 2013-6-4 10:07 | 只看该作者
本帖最后由 ayb_ice 于 2013-6-4 10:09 编辑

大于一个字节的数据保存时:
大端就是高位在前(低地址)
小端就是低位在前(低地址)

堆栈的增长方向与这显然没有什么必然联系


使用特权

评论回复
7
coody| | 2013-6-4 11:15 | 只看该作者
无关的

使用特权

评论回复
8
ericyang001|  楼主 | 2013-6-5 14:09 | 只看该作者
请大家帮我分析下4楼的问题!谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

43

帖子

1

粉丝