0
点赞
收藏
分享

微信扫一扫

计算机科学类专升本复习之“函数声明以及函数原型”详解(初稿)

C语言函数声明以及函数原型

这么说吧 大家都知道C语言代码由上到下依次执行,原则上 函数定义 要出现在 函数调用前面,否则就会报错!

可我就是一个不讲原则的人,那么我想在函数定义之前就使用它,并且不想报错。那么我该怎么办?

    这时候"函数声明"勇士就出来了,她说摩西摩西不要慌张,有我在没意外!

经过对函数提前"声明",告诉编译器,我要使用这个函数,你现在没有找到他的定义不要紧,请不要报错,稍后我就把定义补上

就类似你在打游戏的时候,你女票给你发消息说:"xxx我想去干啥/帮我去买个东西",这时你会说过一会 过一会马上去,别生气,我这个搞一下立马就去帮你!

那么 如何 对 函数 进行声明呢?

    其实吧 函数声明特别简单,也就是去掉函数定义中的函数体,并且在最后加上分号";"。

如下所示:

    dataType kangkang(dataType1 a,dataType b.....);

当然也可以只写数据类型而不写形参拉,如下:

    dataType kangkang(dataType1,dataType2...);

那么  函数原型 是什么呀?

    就是对函数声明给出与函数有关的信息,如: "函数名"、"返回值类型"、"参数列表(重点是参数类型)"等

函数原型 的作用是什么呢?

    其实吧它就是 告诉这个 编译器与函数有关的信息,让编译器知道这个函数是存在的,以及它的存在形式,即使函数暂时没有定义,编译器也知道如何使用它。

这么说吧,有了"函数声明","函数定义"就可以出现在任何地方了,甚至是"其他的文件、静态链接库、动态链接库"等。

//接下来举个例子进行说明吧

eg1: 定义一个函数 sum() 计算m加到n的和,并将sum的定义放到main()后!!!

#include<stdio.h>

//帅气的函数声明登上,它说有我在没意外

int sum(int m,int n); //当然也可以写成 int sum(int,int);



int main()

{

    int a=5,b=66;

    int result = sum(a,b);//调用sum函数进行计算

    printf("The sum from %d to %d is %d\n",a,b,result);

    return 0;

}    



//进行函数定义(注意看噢,在此之前 主函数已经对函数进行调用操作了噢!)

int sum(int m,int n)

{

    int i,sum=0;

    for(i=m;i<=n;i++)

    {

        sum += i;

    }

    return sum;

}

结果:

The sum from 5 to 66 is 2201

我们在 main() 函数中调用了 sum() 函数,编译器在它前面虽然没有发现函数定义,但是发现了函数声明,这样编译器就知道函数怎么使用了,至于函数体到底是什么,暂时可以不用操心,后续再把函数体补上就行。

//为了加深印象,咱们再举个例子吧!

eg2:定义两个函数计算 1!+2!+...+(n-1)!+n!的和

    分析:所定义的函数  一个进行计算阶乘,一个进行计算累加的和

上代码:

#include<stdio.h>

long kangkang(int n);

long kang(long n );

int main()

{

    printf("1!+2!+...+10! = %ld\n",kang(10));

    return 0;

}



//定义 求阶乘 函数

long kangkang(int n)

{

    int i;

    long result = 1;

    for(i=1;i<=n;i++)

    {

        result *= i;

    }

    return result;

}



//定义 累加求和 函数

long kang(long n)

{

    int i;

    long result = 0;

    for(i=1;i<=n;i++)

    {

        result += kangkang(i);

    }

    return result;

}

结果:

1!+2!+...+10! = 4037913

举报

相关推荐

0 条评论