相关疑难解决方法(0)

何时为局部变量分配堆栈空间?

我对以下C代码有疑问:

void my_function()
{
    int i1;
    int j1;

    // Do something...

    if (check_something())
    {
        int i2;
        int j2;

        // Do something else...
    }

    // Do some more stuff...
}
Run Code Online (Sandbox Code Playgroud)

是否有关于何时为i2和j2分配/解除分配堆栈空间或是否依赖于编译器的保证?我希望当i2和j2进入范围时调整堆栈指针,并在它们超出范围时进行调整,但后来认为某些编译器可能只是"优化"整个事物并在嵌套范围内考虑变量.首先输入该功能.

我知道我可以查看我的编译器生成的汇编代码,但是想知道实现是否可以留给编译器.

谢谢!

c stack memory-management

11
推荐指数
2
解决办法
2925
查看次数

什么时候实例化 VBA 变量

我很犹豫要问,但我找不到VBA 的文档。

相关(但我不认为是骗子):

我想我使用“实例化”这个词是正确的,但如果我错了,请纠正我。实例化是在创建变量并为其分配所需的资源时?所以在 VBA 中,我看到了两种方法。

一切都在顶部!

Public Sub ToTheTop()
    Dim var1 As Long
    Dim var2 As Long
    Dim var3 As Long

    var1 = 10
    var2 = 20
    var3 = var1 + var1
    Debug.Print var3
End Sub
Run Code Online (Sandbox Code Playgroud)

或接近使用

Public Sub HoldMeCloser()
    Dim var1 As Long
    var1 = 10
    Dim var2 As Long
    var2 = 20
    Dim var3 As Long

    var3 …
Run Code Online (Sandbox Code Playgroud)

variables vba scope

4
推荐指数
1
解决办法
449
查看次数

标签 统计

c ×1

memory-management ×1

scope ×1

stack ×1

variables ×1

vba ×1