c语言函数的调用规则主要有以下几点:

1.函数调用的前后,栈帧的压栈和弹栈;
2.调用函数时,参数的压栈,返回值的弹栈;
5.调用函数的结构,调用函数后的处理。
在参数传递中,有两个重要的问题必须要明确说明:
1. 当参数个数多于一个时,按照什么顺序把参数压入堆栈;
2. 函数调用后,由谁来把堆栈恢复原状。
在高级语言中,就是通过函数的调用方式来说明这两个问题的。常见的调用方式有:
下面就分别介绍这几种调用方式:
stdcall调用方式又被称为Pascal调用方式。在Microsoft C++系列的C/C++编译器中,使用PASCAL宏,WINAPI宏和CALLBACK宏来指定函数的调用方式为stdcall。
stdcall的调用方式意味着:
(1) 参数从右向左一次压入堆栈
(2) 由被调用函数自己来恢复堆栈
(3) 函数名自动加前导下划线,后面紧跟着一个@,其后紧跟着参数的尺寸
push b 先压入第二个参数
push a 再压入第一个参数
好的,让我们以一个简单的例子来分析C语言中的函数调用。
假设我们要编写一个程序,计算两个整数的和。我们可以定义一个名为addition的函数来完成这个任务,然后在主函数中调用它。
下面是一个示例代码:
int sum = addition(num1, num2); // 调用addition函数,并将返回值赋给sum
在这个例子中,我们首先在程序开头包含了