<s>C语言程序中，如何理解栈是由编译器管理的？</s>
<s>引用 6 楼 u014627144 的回复:[quote=引用 5 楼 lm_whales 的回复:] 你说得挺能解开我这个疑惑的，请问下哪里可以查看或者验证下呢~~[/quote] 要想彻底理解这些东西，编译原理，汇编语言，以及计算机组成与结构，这方面的知识都是需要了解的 X86堆栈，函数调用，数据暂存，以及函数局部自动变量，函数参数，都在使用 .</s><s>具体到 VC上，函数局部自动变量，函数参数，用一个固定的常量，表示函数相对栈帧的相对偏移量。</s><s>具体 读写，一般是通过寄存器间接寻址等方式 读写，大都是用 ebp 读写，有时候 优化后的代码，可能会用 esp 读写。</s><s>另外，32 Bits 代码，一般看不到设置堆栈的操作， 栈的位置通过 段寄存器 SS确定，SS一般不用设置， 所以堆栈段地址，以及堆栈基地址，这些在汇编代码里是看不到的。</s><s>能看到的堆栈操作，一般都是用 相应指令， 比较明显的就是 对 esp,ebp 这两个寄存器的使用。</s>
