如有转载,请注明出处:http://blog.csdn.net/embedded_sky/article/details/44457453
作者:super_bert@csdn
一、几个概念
1.栈(Stack)
C语言通过栈来维护函数调用上下文,也就是说C中的函数、函数参数列表、局部变量、函数返回值都保存在栈内存中,在完成函数调用之后栈帧随即销毁,至于具体的压栈顺序和上下文维护工作由谁来完成,则取决于函数的调用方式(cdecl/stdcall/fastcall/pascal).
关于C函数调用约定,或者叫调用惯例(Calling Convention),以下表格中,个人认为出栈方应该叫做栈的维护方更确切,表格:

本文介绍了C语言中栈和堆的内存管理,包括栈的维护、堆的申请与释放,以及动态链接库的使用。在Linux和Windows系统中,进程的地址空间布局有所不同,Linux采用分页内存管理,而Windows的进程空间相对分散。讨论了函数调用栈、堆空间分配和线程栈的特性,以及malloc和VirtualAlloc等函数在不同系统中的实现。
最低0.47元/天 解锁文章
1409

被折叠的 条评论
为什么被折叠?



