
主调函数是本身固有的数,被调函数是通过其他数计算出来的
主调函数 调用别的函数实现功能
例如 A是主调函数 B是被调函数
void A()
{
B();
}
1、 __stdcall调用类型:该调用只是通过堆栈来push和pop参数。push参数时,顺序是从右到左。
2、“_stdcall”的作用 :在C/C++中函数默认Calling Conventions(调用约定)是:参数由右向左压入栈,由调用者清空栈。
3、在FORTRAN、PASCAL、VisualBASIC等语言中,函数的Calling Conventions是:参数由右向左压入栈,由被调函数清空栈。
4、__cdecl调用类型: 这是C的调用规则。对于所有非C++成员函数或未标有__stdcall或__fastcall的函数来说,这是默认调用规则。
5、__fastcall调用类型:从字面意思可知,这是一种快速调用。因为CPU的寄存器会被使用来存放函数参数列表中的头几个参数。而剩下参数将被从右至左地推倒堆栈上。被调用函数将从 寄存器和堆栈获得函数参数。
6、在x86中,ECX和EDX一般被用来存放开始的参数。在NET中,为了性能上的快速,就是使用ecx和edx来实现 __fastcall的。
通常在C语言中,一个完整的项目程序是不可能在一个函数中实现所有的功能。而是由若干功能不同的函数来实现,并且函数之间会存在互相调用的情况。
函数是C语言的基本组成元素,如果你要想实现函数的功能,那么你就必须学会正确调用函数。当我们调用一个函数时,需要明确函数名和实参列表。实参列表中的参数可以是常量、变量、表达式或者空,并且各参数之间要使用英文逗号分隔开来。
在数学运算中,会遇到计算多个连续自然数之间的和的情况。例如要计算1~n之间自然数之和,就需要先计算1加2的结果,用这个结果加3再得到一个结果,用新得到的结果加4,以此类推,直到用1~(n-1)之间所有数的和加n。
在程序开发中,要想完成上述功能,就需要使用函数的递归调用,所谓的递归调用就是函数内部调用自身的过程。需要注意的是,递归必须要求有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。接下来通过一个计算自然数之和的案例来学习递归调用。
扩展资料
在C++中,为了允许 *** 作符重载和函数重载,C++编译器往往按照某种规则改写每一个入口点的符号名,以便允许同一个名字(具有不同的参数类型或者是不同的作用域)有多个用法,而不会打破现有的基于C的链接器。
这项技术通常被称为名称改编(Name Mangling)或者名称修饰(Name Decoration)。许多C++编译器厂商选择了自己的名称修饰方案。
函数定义中的参数是形参,而实际调用该函数时输入的参数时实参
如一个函数func原型为:
void func(int XINGCAN)
{
}
调用该函数时:
int SHICAN;
func(SHICAN);
主调函数和被调函数应该很好理解,如上面的例子中func就是被调函数,而调用func的函数就叫做主调函数了
void的意思就是无、空的意思,英文字意就是这个
如函数void func(void)表示这个函数没有输入参数,也没有返回值
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)