C++ MASM局部变量:动态分配的数据?

C++ MASM局部变量:动态分配的数据?,c++,masm,C++,Masm,我正在学习masm32,学习一些教程。 在一个教程中: 有人说: LOCAL指令从堆栈中为局部变量分配内存 在函数中使用。本地指令的集合必须是 直接低于PROC指令。本地指令是 紧接着是:。 所以本地wc:WNDCLASSEX告诉MASM从堆栈分配内存 名为wc的变量的WNDCLASSEX结构的大小。我们可以 参考我们代码中的wc,在堆栈中没有任何困难 操纵我想这真是天赐之物。缺点是 局部变量不能在创建它们的函数之外使用 当函数返回到 呼叫者另一个缺点是无法初始化局部变量 自动执行,因为它们只是

我正在学习masm32,学习一些教程。 在一个教程中: 有人说:

LOCAL指令从堆栈中为局部变量分配内存 在函数中使用。本地指令的集合必须是 直接低于PROC指令。本地指令是 紧接着是:。 所以本地wc:WNDCLASSEX告诉MASM从堆栈分配内存 名为wc的变量的WNDCLASSEX结构的大小。我们可以 参考我们代码中的wc,在堆栈中没有任何困难 操纵我想这真是天赐之物。缺点是 局部变量不能在创建它们的函数之外使用 当函数返回到 呼叫者另一个缺点是无法初始化局部变量 自动执行,因为它们只是动态分配的堆栈内存 当输入该函数时。您必须手动为它们分配 本地指令后的所需值

我一直被告知堆栈内存是静态的,任何动态分配都是堆。 那么,我们真的可以把C++视为本地人吗? 当您在C++中创建局部变量时,这些变量也会在堆栈上动态分配吗? 我们真的可以把C++视为本地人吗?当您在C++中创建局部变量时,这些变量也会在堆栈上动态分配吗?

C++中,本地(自动)变量在堆栈上生存,所以是和是。

它们是动态分配的,即它们在函数进入/退出时来来去去。然而,正如您正确指出的,这种类型的分配与堆分配有很大不同


除了堆和堆栈之外,还有第三个变量可以驻留的区域。它是数据段。它是全局以及函数级和类级
静态
变量存在的地方。

数据段内存是否与堆栈的最上层类似(对于您的程序)?或者是完全不同的东西。我只是随便看看guess@xcrypt:这在某种程度上是特定于操作系统的。有关通用高级视图,请参见@xcrypt:有关另一个writeup,请参见