在C语言中,当一个函数被调用时,函数的参数会被依次压入栈中。具体来说,对于 printf()
函数,多个参数的压栈顺序由调用约定(Calling Convention)决定。在多数C编译器使用的标准C调用约定(如cdecl)中,参数是从右到左的顺序压入栈中。
这意味着,在 printf()
函数的参数中:
- 最右边的参数最先压入栈中,位于栈底。
- 最左边的参数最后压入栈中,位于栈顶。
示例:
printf("%c %c", getchar(), getchar());
结果:
右边的getchar()在栈底
左边的getchar()在栈顶