![]() |
1
3
不,它不能知道
以一个递归函数为例,即一个调用自身的函数。假设这样一个函数有几个通过堆栈传入的参数。这意味着每个参数占用堆栈上的一些空间,从而更改
现在,当函数被输入时
如果编译器想确定
附笔。:
现在是另一回事。你其实不需要优化
|
![]() |
2
3
不,编译器不知道
|
![]() |
3
2
|
![]() |
4
2
不,编译器没有提前知道值。在一些非常基本的程序中(只有一条可能的“路线”从
在任何情况下这样做都没有什么意义——因为堆栈指针 由于大量使用,大多数CPU的设计都使得从堆栈指针进行间接寻址非常有效。事实上,它通常比提供一个绝对地址更有效。 |
![]() |
5
1
这对于堆栈的工作方式来说是非常基本的。为了自己解释清楚,想象一下如何实现递归函数。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 5 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 5 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 5 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 5 月前 |