
正文
c语言函数压栈顺序,函数调用压栈过程图解
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言中函数参数压栈方式为什么是从右到左
栈是先入后出的数据结构.
函数参数从右到左, 那么到函数内部出栈的时候就是从左到右的顺序了.
对于普通函数无区别. 但对于可变参函数, 会根据左侧参数来决定共计有多少参数, 每个类型是什么.
比如 printf scanf这类的.
于是 就设计成从右到左的压栈方式了.
相关问答
Q1: C语言中函数参数压栈方式为什么是从右到左的
因为有些是不定参数的
这样函数内 在处理的时候 从左到右 会更方便。
根据前面的参数 来确定后面还有多少参数 这样。
要函数内部弹栈从左到右
那么压栈就只能从右到左了。
Q2: C语言函数压栈顺序
基本正确,补充一点,参数一般是往寄存器里面放,放不下的情况下,才压栈。
Q3: C语言函数参数压栈顺序与求值顺序的问题
压栈顺序是从右到左,而求值顺序则是undefined的,由编译器实现决定。
请参考:







