C语言调用函数时会为函数分配自己的函数空间吗? 5

如果一个函数里有局部变量,C语言对这个函数的多次调用不会相互影响吧?——>C语言调用函数时会为函数分配自己的函数空间吗?... 如果一个函数里有局部变量,C语言对这个函数的多次调用不会相互影响吧?
——> C语言调用函数时会为函数分配自己的函数空间吗?
展开
 我来答
mydocument0001
2020-05-28
知道答主
回答量:1
采纳率:0%
帮助的人:617
展开全部
C语言每一次函数调用,编译器都会为这个函数调用分配一段空间,这段空间用来存放该函数中的所有局部变量和调用其它函数时需要传递的参数的副本。每一次调用这个函数,这段空间都会重新分配,函数返回后这段空间就被释放了,所以重复调用多少次都不会影响的。所有的这些函数调用时候分配的内存都是在线程的栈上的。

顺便说一下,我觉得楼上的回答是不对的: 每个线程都只会访问自己调用的函数中的局部变量的,访问局部变量是不会存在多线程问题的。会存在多线程问题的肯定不是局部变量,有可能是局部变量指向的其它可共享的对象(例如:堆对象......),或者在函数中访问了全局对象,类的成员变量等,这些并不是局部变量。
处摇胼手胝足
2018-07-07 · TA获得超过295个赞
知道小有建树答主
回答量:488
采纳率:83%
帮助的人:167万
展开全部
C语言调用函数时,是会为函数分配临时函数空间,但函数的局部变量生命周期是只在函数运行时,一旦完成函数调用局部变量就被释放了。所以函数多次调用是在不同的函数空间调用,不会相互影响。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-06-02
展开全部
不分配的。
进入函数压栈;退出函数出栈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一剑出血
高粉答主

2018-07-07 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
声明成可重入函数,才不会影响递归调用。
追问
不是递归调用啊!
我就是好久没深入使用,对C语言基本的语法功能产生了疑惑!
你如果知道的话请告诉我一下,省的我去翻书了^_^
问题:就是C语言是不是每一次调用函数时都会为这个函数分配一个独立的函数空间,这个空间的局部变量不会与外部相互影响?
追答
我已经回答过了:不一定。你要考虑多个线程分别调用同一个函数,或者同一线程里递归调用同一个函数等等这些极端情况。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式