十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
c语言中一个完整的函数由函数首部和函数体构成,而且定义函数时两者都是必不可少的。
为贵州等地区用户提供了全套网页设计制作服务,及贵州网站建设行业解决方案。主营业务为网站建设、成都网站制作、贵州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
函数定义的一般形式如下:
类型标识符
函数名(形参表列)
//
这是函数首部
//
以下{
}内的是函数体
{
说明部分
执行部分
}
举例说明如下:
//
定义一个不带返回值的函数
//
函数功能:输出形参的值
void
fun(int
a,
int
b)
{
printf("%d,
%d\n",
a,
b);
}
//
定义一个带返回值的函数
//
函数功能:返回2个整数数的最大值
int
fun(int
a,
int
b)
{
return
ab
?
a
:
b;
}
函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。
您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
C 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。
函数还有很多叫法,比如方法、子例程或程序,等等。
C 语言中的函数定义的一般形式如下:
在 C 语言中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:
以下是 max() 函数的源代码。该函数有两个参数 num1 和 num2,会返回这两个数中较大的那个数:
创建 C 函数时,会定义函数做什么,然后通过调用函数来完成已定义的任务。
当程序调用函数时,程序控制权会转移给被调用的函数。被调用的函数执行已定义的任务,当函数的返回语句被执行时,或到达函数的结束括号时,会把程序控制权交还给主程序。
调用函数时,传递所需参数,如果函数返回一个值,则可以存储返回值。例如:
如上把 max() 函数和 main() 函数放一块,编译源代码。当运行最后的可执行文件时,会产生下列结果:
形式参数就像函数内的其他局部变量,在进入函数时被创建,退出函数时被销毁。
当调用函数时,有两种向函数传递参数的方式:
默认情况下,C 使用 传值调用 来传递参数。一般来说,这意味着函数内的代码不能改变用于调用函数的实际参数。
函数的定义通常包含以下内容:
函数返回值类型
函数名(形参表说明)
/*
函数首部
*/
{
说明语句
/*
函数体
*/
执行语句
}
说明:
(1)数的定义中的类型,是指函数返回值的类型。函数返回值不能是数组,也不能是函数,除此之外任何合法的数据类型都可以是函数的类型,如:int
、long、float、char等,或是后面讲到的指针、结构等。函数的类型是可以省略的,当不指明函数类型时,系统默认的是整类型。
(2)函数名是用户自定义的标识符,是C语言函数定义中唯一不可省略的部分,需符合C语言对标识符的规定,即由字母,数字或下划线组成,用于标识函数,并用该标识符调用函数。另外,函数名本身也有值,它代表了该函数的入口地址,使用指针调用该函数时,将用到此功能。
(3)形参也成为"形式参数"。形参表是用逗号分隔的一组变量说明,包括形参的类型和形参标识符,其作用是指出每一个形参的类型和形参的名称,当调用函数时,接受来自主调函数的数据,确定各参数的值。形参表说明可以有两种表示形式:
int
func
(int
x,
int
y
)
{
……
}
或
:
int
func
(
x,
y
)
int
x,
y;
{
……
}
通常,调用函数需要多个原始数据,就必须定义多个形式参数。注意,在")"后面不能加分号";"。
(4)用{
}括起来的部分是函数的主体,称为函数体。函数体是一段程序,确定该函数应完成的规定的运算,应执行的规定的动作,集中体现了函数的功能。函数内部应有自己的说明语句和执行语句,但函数内定义的变量不可以与形参同名。花括号{
}是不可省略的。
根据函数定义的一般形式,我们可以得到一个C语言中最简单的函数:
dumy
(
)
{
}
这是C语言中一个合法的函数,函数名为dumy。它没有函数类型说明,也没有形参表,同时函数体内也没有语句。实际上函数dumy不执行任何操作和运算,在一般情况下是没有用途的,但在程序开发的过程中有时是需要的,常用来代替尚未开发完毕的函数。
函数定义包括有参函数和无参函数,无参函数为:
类型标示符
函数名()
{
声明语句
语句部分
}
无参函数:
类型标示符
函数名(形式参数列表)
{
声明部分
语句部分
}
例如:
int
max(int
x,int
y)
{
int
z;
z=xy?x:y;
return(z);
}