回答

收藏

ucosii里关于堆栈生长方式和栈顶问题

STMCU STMCU 2885 人阅读 | 0 人回复 | 2013-11-27

数组在内存中总是下标大的在高地址,下标小的在低地址。

任哲书里:
             OS_STK TaskStk[64]    ?    ?    ?    ?//创建一个堆栈

如果堆栈是向下生长的(即地址递减),那么创建任务时,栈顶指针是&TaskStk[63];
如果堆栈是向下生长的(即地址递增),那么创建任务时,栈顶指针是&TaskStk[0];

?我的想法是:

当堆栈向下生长时,地址递减,所以最后栈顶指针指向低地址,到这里是毋庸置疑的。
那么按照数组TaskStk[64]在内存的存放方式,低地址应该是&TaskStk[0],而不是&TaskStk[63]。这和书上是相反的。

不知道我哪个地方想的不对?
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条