nothinglastforever
nothinglastforever

printf语句为什么是从右向左读

printf 支持不定个数的参数, 参数是通过压栈传递的。

printf里面的参数/语句的值是从左往右依次入栈的 。

即堆栈指针SP指向了最后一个参数的下一个位置、

故而最后一个参数的位置是SP-1。

而参数个数不定、使得最开始一个参数的位置(栈顶)不能确定。

所以从左向右读  的话、printf是无法通过栈顶来获取参数信息的。