C语言程序内存布局
C语言通过栈来维护函数调用上下文,也就是说C中的函数、函数参数列表、局部变量、函数返回值都保存在栈内存中,在完成函数调用之后栈帧随即销毁,至于具体的压栈顺序和上下文维护工作由谁来完成,则取决于函数的调用方式(cdecl/stdcall/fastcall/pascal).关于C函数调用约定,或者叫调用惯例(CallingConvention),以下表格中,个人认为出栈方应该叫做栈的维护方更确切,表格:栈帧一般包括如下几方面内容:1函数的参数列表和返回值(返回地址);2临时变量:包括非静态局部变量和编译器自动生成的其他临时变量;3保存的上下文:包括函数调用前后需保持不变的寄存器。堆空间是需
暂无评论