OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4843|回复: 9

全局变量在作为函数的参数时会入栈吗?

[复制链接]

29

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2014-5-12
在线时间
0 小时
发表于 2015-11-9 20:16:48 | 显示全部楼层 |阅读模式
5金钱
如题,全局变量在作为函数的参数时会入栈吗?

最佳答案

查看完整内容[请看2#楼]

全局变量本身并不入栈 但是传递给形参后,形参会入。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-9 20:16:49 | 显示全部楼层
全局变量本身并不入栈
但是传递给形参后,形参会入。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

163

帖子

0

精华

高级会员

Rank: 4

积分
615
金钱
615
注册时间
2011-11-7
在线时间
180 小时
发表于 2015-11-9 22:19:01 | 显示全部楼层
不知道是不是叫入栈,一般是先复制一份作为参数传传入的
回复

使用道具 举报

29

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2014-5-12
在线时间
0 小时
 楼主| 发表于 2015-11-9 22:34:13 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
原子哥。当全局变量作为函数的形参时,形参入栈空间,而如果只是在函数内部使用全局变量,并不作为函数的形参时,就不会入栈,是这样的吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-9 23:08:10 | 显示全部楼层
回复【4楼】快乐每一天:
---------------------------------
应该是这样。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

29

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2014-5-12
在线时间
0 小时
 楼主| 发表于 2015-11-9 23:14:21 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
我现在有个疑问:
启动文件中栈空间设置为1KB,我的程序中使用了官方的FFT函数cr4_fft_256_stm32(lBUFOUT, lBUFIN, NPT);做的256个点的FFT,
NPT=256;
IBUFOUT和IBUFIN都是long型的,全局变量数组,且都是大小为256的数组,如果按照前面形参入栈大小来算的话,那么IBUFOUT和IBUFIN都入栈,那么光是这两个形参就总共需要2KB的大小,这不是会溢出吗?为什么在我的程序中反而没有看到溢出的现象发生?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-9 23:24:59 | 显示全部楼层
回复【6楼】快乐每一天:
---------------------------------
那是传递的数组首地址,是指针,只占4个字节。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

29

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2014-5-12
在线时间
0 小时
 楼主| 发表于 2015-11-9 23:34:09 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
懂了,谢谢原子哥!
回复

使用道具 举报

29

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2014-5-12
在线时间
0 小时
 楼主| 发表于 2015-11-9 23:35:00 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
那如果程序中出现了栈溢出,会以怎样的形式告诉编程的人呢?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-11 23:28:49 | 显示全部楼层
回复【9楼】快乐每一天:
---------------------------------
进入hardfault
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 02:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表