C 语言:调用函数时,函数参数压入堆栈的顺序:从左到右还是从右到左?

2024-11-25 04:43:51
推荐回答(3个)
回答1:

标准C参数压栈次序是反向压栈,也就是从右到左。因为C要把不定参数...放在最右边,为了高效率定位参数,所以只能从右到左压栈,这样第一个参数最靠近栈顶。

比如printf (const char * szFormat,...);如果从左到右压不容易找到第一个参数szFormat

不过16位操作系统的时候,调用API函数时,微软的vc曾经支持过一种从左到右的压占次序,现在32位系统没有了。

回答2:

参数从右向左压入堆栈

回答3:

两种都有可能,看你怎么定义函数的。