打印

在函数中声明的static变量是存储在堆栈区域的吗?

[复制链接]
4158|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flion|  楼主 | 2012-5-10 14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,在函数中声明的static变量是存储在堆栈区域的吗?C语言
沙发
flion|  楼主 | 2012-5-10 15:09 | 只看该作者
还是全局变量区域的?

使用特权

评论回复
板凳
sjnh| | 2012-5-10 15:57 | 只看该作者
全局变量 和 static变量(包括函数内部的)单独一块区, 不在堆栈区

使用特权

评论回复
地板
xlsbz| | 2012-5-10 16:00 | 只看该作者
首先static肯定是被编译器分配固定内存的。

至于放在哪里?那到不一定!!比如有xdata内存的单片机  也可以放static数据啊,就不占用堆栈区域了

使用特权

评论回复
5
xlsbz| | 2012-5-10 16:27 | 只看该作者
呵呵  看了3楼的帖子   我觉得首先要强调一下什么叫做堆栈区域。

3楼的意思是从堆栈指针往上是堆栈区域。

我的意思是ram区。

3楼的说法应该更好一些

使用特权

评论回复
6
flion|  楼主 | 2012-5-11 08:45 | 只看该作者
这样的话我就明白了,我用的是stm8。
可以将部分函数内的变量声明为static,可以减少对堆栈区域空间的使用

谢谢!

使用特权

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

本版积分规则

0

主题

43

帖子

0

粉丝