函数的定义与调用

首先来了解一下概念;

1.函数的定义:函数的定义就是对函数所要完的操作进行描述,即编写一段程序,使该段程序完成函数所指定的操作。一般函数需要先定义后使用。没有定义的函数不能使用。

 -除主函数外的函数不能单独运行,这些函数可以被主函数或其他函数调用,也可以条用其他函数,但不能调用主函数。

2.函数的调用:程序中使用已经定义好的函数,成为函数调用。定义函数的目的是为了使用这个函数,因此要学会正确使用这个函数。如果函数A调用函数B,则称函数A为主调函数,函数B为被调函数。

函数参数:函数调用作为一个函数的实参。

例如:z=max(max(a,b),c);

其中max(a,b)是一次函数调用,它的值作为max另一次调用的实参。z的值时a,b,c三者中的最大者。

/*在这里补充一下形参与实参的区别,我借用一下百度上一位用户的回答:

1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。
4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。

*/

下面再来看一下具体的实例;

a.定义无参函数

#include <stdio.h>
void main()
{
    void print_message();     //对print_message函数的声明
    print_message();          //调用print_message函数
}
void print_message()             //定义print_message函数
{
    printf("How do you do!\n");
}

 b.定义有参函数

#include <stdio.h>

int main()
{
    int a,b,c=0;
    int bigger(int,int);   //此步骤不能少,需要声明bigger函数,其实bigger函数就是max函数
    printf("please input two numbers:");
    scanf("%d%d",&a,&b); 
    c=bigger(a,b);            //调用bigger函数
    printf("The max one is%d!",c);
}
 int bigger(int m,int n)         //定义bigger函数
{
    if (m > n)
        return m;
    else
        return n;
}

 函数调用中:所有函数都是平行的,即在定义函数时是分别进行的,是互相独立的。一个函数并不从属于另一函数,即函数不能嵌套定义。函数间可以互相调用,但不能调用main函数。main函数是系统调用的。

在程序中调用被调函数时,需要满足以下三个条件。

①首先被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数)。但光有这一条还不够。

②如果使用库函数,还应该在本文件开头用#include命令将调用有关库函数时所需用到的信息“包含”到本文件中来。

③如果使用用户自己定义的函数,且该函数与对该函数的调用函数在同一个原文件中,特别是函数中调用的函数,该函数的位置在调用它的函数(即主调函数)的后面,应该在主调函数中对被调用的函数作声明。声明的作用是把函数名,函数参数的个数和参数类型等信息通知编译系统,以便在遇到函数调用时,编译系统能正确识别函数并检查调用是否合法。一个函数一般要经过声明才能使用(就好像变量一样必须先声明才能使用),除非它在调用它的前面定义。

posted @ 2018-06-12 00:50  yhc99  阅读(2500)  评论(0编辑  收藏  举报