如果在函数中if分支里定义局部变量,会分配变量空间吗

2019-12-25 18:46发布

大家好,我有一个关于C程序的基础问题需要解答:

  1. void Function(U8 a)
  2. {
  3.    U8 b;

  4.    if (State == TRUE)
  5.    {
  6.       U8 c;
  7.    }
  8.    else
  9.    {
  10.    }
  11. }
复制代码

如上函数:
1.如果if条件不满足的话,变量c还会创建吗?

2.如果问题1的答案为是,那么函数是否在进入时,不管如何,都会首先分配变量空间,然后再执行程序?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
strongking
1楼-- · 2019-12-25 23:48
 精彩回答 2  元偷偷看……
security
2楼-- · 2019-12-26 00:16
有用的分支,就要分配。

你自己写个代码,去看看对应的汇编实现,就知道是个怎样的情况。
cocom
3楼-- · 2019-12-26 06:14
在那个地方定义与你在开头定义的效果是一样的,进入函数时就会分配空间。
zhugean
4楼-- · 2019-12-26 09:31
局部变量占用栈的空间
suny1022
5楼-- · 2019-12-26 09:55
除非是预编译的条件判断,否则都会被分配空间
擦鞋匠
6楼-- · 2019-12-26 10:43
 精彩回答 2  元偷偷看……

一周热门 更多>