
栈帧
LLLLLLLLLLLLLLL.
这个作者很懒,什么都没留下…
展开
-
栈帧与函数调用过程
程序的地址空间程序的地址空间图中,从下向上,地址不断增长,从0x00000000到0xFFFFFFFF。 code:代码区,存储代码 字符、串常量区:存储不能被修改的常量 Init,uninit:全局区,分别为初始化全局区,和未初始化全局区,存储全局变量 heap:堆,使用malloc在堆申请空间,在堆上创建的变量使用完毕后要手动释放空间 栈:在离堆较远处的一块空间叫做栈,用于存放临时变量原创 2017-12-11 19:58:56 · 450 阅读 · 0 评论 -
可变参数列表
由栈帧结构可知,被调用函数的参数在创建的时候最左边的最后被创建,因此只要知道第一个参数的地址(被调用函数必须有第一个参数),就可以得到其他参数的内容。例如: int fun(int a, ...)a为第一个元素,不可省略, … 代表可变参数列表如图: fun函数的参数部分在调用fun函数的函数和fun函数之间存储,当调用fun函数时,不管传了几个参数,只要将a变量的地址给一个指针变量,这个指针原创 2017-12-28 13:16:21 · 382 阅读 · 0 评论