网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > 计算机 > C语言

C语言函数的定义

栏目: C语言 / 发布于: / 人气:2.8W

引导语:函数表示每个输入值对应唯一输出值的一种对应关系。这种关系使一个集合里的每一个元素对应到另一个(可能相同的)集合里的唯一元素。以下是本站小编分享给大家的C语言函数的定义,欢迎参考学习!

C语言函数的定义

  一、函数的定义

一个函数包括函数头和语句体两部分。

函数头由下列三不分组成:

函数返回值类型

函数名

参数表

一个完整的函数应该是这样的:

函数返回值类型 函数名(参数表)

{

语句体;

}

函数返回值类型可以是前面说到的某个数据类型、或者是某个数据类型的指针、指向结构的指针、指向数组的指针。指针概念到以后再介绍。

函数名在程序中必须是唯一的,它也遵循标识符命名规则

参数表可以没有也可以有多个,在函数调用的时候,实际参数将被拷贝到这些变量中。语句体包括局部变量的声明和可执行代码。

我们在前面其实已经接触过函数了,如abs(),sqrt(),我们并不知道它的内部是什么,我们只要会使用它即可。

这一节主要讲解无参数无返回值的函数调用。

 二、函数的声明和调用

为了调用一个函数,必须事先声明该函数的返回值类型和参数类型,这和使用变量的道理是一样的(有一种可以例外,就是函数的定义在调用之前,下面再讲述)。

看一个简单的例子:

void a(); /*函数声明*/

main()

{

a(); /*函数调用*/

}

void a() /*函数定义*/

{

int num;

scanf(%d,&num);

printf(%dn,num);

}

在main()的前面声明了一个函数,函数类型是void型,函数名为a,无参数。然后在main()函数里面调用这个函数,该函数的作用很简单,就是输入一个整数然后再显示它。在调用函数之前声明了该函数其实它和下面这个程序的'功能是一样的:

main()

{

int num;

scanf(%d,&num);

printf(%dn,num);

}

可以看出,实际上就是把a()函数里面的所有内容直接搬到main()函数里面(注意,这句话不是绝对的。)

我们前面已经说了,当定义在调用之前时,可以不声明函数。所以上面的程序和下面这个也是等价的:

void a()

{

int num;

scanf(%d,&num);

printf(%dn,num);

}

main()

{

a();

}

因为定义在调用之前,所以可以不声明函数,这是因为编译器在编译的时候,已经发现a是一个函数名,是无返回值类型无参数的函数了。

那么很多人也许就会想,那我们何必还要声明这一步呢?我们只要把所有的函数的定义都放在前面不就可以了吗?这种想法是不可取的,一个好的程序员总是在程序的开头声明所有用到的函数和变量,这是为了以后好检查。

前面说了,在调用之前,必须先声明函数,所以下面的做法也是正确的(但在这里我个人并不提倡)。

main()

{

void a();

a();

}

v  oid a()

{

int num;

scanf(%d,&num);

printf(%dn,num);

}

一般来说,比较好的程序书写顺序是,先声明函数,然后写主函数,然后再写那些自定义的函数。

既然main()函数可以调用别的函数,那么我们自己定义的函数能不能再调用其他函数呢?答案是可以的。看下面的例子:

void a();

void b();

main()

{

a();

}

void a()

{

b();

}

void b()

{

int num;

scanf(%d,&num);

printf(%dn,num);

}

Tags:函数 语言