原来我以为在C语言中指针已经是非常麻烦了,没想到栈帧给我甜蜜一击,但最后一路学习下来也不是多么麻烦的事。
首先我们得明确为什么有函数,其作用是:在面向过程语言的重要组成成分,它将具有相同功能的语句组合到一块,便于我们使用,提高程序可读性,减少代码量。
以main函数为例,在使用过程中首先调用__tmainCRTStartup函数,然后又调用mainCRTStartup函数,而每一次的函数调用就是一个过程——函数的调用过程;在这个过程中我们要为函数开辟栈空间,用于临时变量的保存、现场的保护(函数的返回值和参数、调用前寄存器的状态,调用前栈帧的顶部和底部的地址),这块栈空间我们称之为函数
栈帧。
由C语言的内存分布空间可得,在不断地函数过程中,栈向下增长,那么具体的调用过程是怎么样的嘞?举一段代码表示说明(本次代码在vc++6.