C++参数入栈顺序为什么从右向左

C++参数入栈顺序为什么从右向左

1、若是参数个数是固定的,那无所谓,从左到右和从右到左都是一样的
2、栈的数据结构是先进后出,最后入栈的参数,先出栈,最后入栈的可变参数一般都是类型标识,这样就可以更方便的获取后面的数据类型,而不用便利参数列表;
比如printf,会在第一个参数格式字符串中,指明后续有几个参数,各自是什么类型的。于是在函数中,参数格式字符串必须第一个弹栈,否则无法获取参数类型,也就无法获知后续参数占几个字节,导致无法正确获知参数。

pascal 不支持可变参数,它的参数入栈是从左到右

猜你喜欢

转载自blog.csdn.net/doubleintfloat/article/details/143084644