C 语言 - 函数
函数是 C 程序中的基本模块单元,通常设计为执行一项特定任务,由一系列语句组成。本节我们将一起学习在 C 语言中如何定义函数、声明函数和调用函数,函数是模块化程序设计的重要基础,因此本节知识非常重要。
函数是什么
函数(Function)是计算机编程中一个通用 的概念,一个函数就是一组一起执行一个任务的语句。在不同的编程语言或应用领域中,函数可能有一些不同的叫法,比如方法、子例程或子程序等等。
在前面的章节中,其实我们已经接触过函数,因为每个 C 程序都至少有一个函数,即主函数 main()
。当然,除了主函数,我们也可以把代码划分到不同的函数中,也就是自定义函数。至于如何划分代码到不同的函数中,则完全是由程序员(你)来决定的,但在逻辑上,通常会根据每个函数执行一个特定的任务来进行的。
在 C 语言中,函数包含声明和语句,函数声明是为了告诉编译器函数的名称、返回类型和参数。函数定义则提供了函数的实际主体,也就是该任务需要执行的一组语句。每个函数都有一个名称,函数名通常会反映该任务是做什么的。比如,C 标准库提供的函数 strcat()
用来连接两个字符串,函数 memcpy()
用来复制内存到另一个位置。
C 标准库提供了大量的程序可以调用的内置函数,你可以在《Linux 常用 C 函数参考手册》中找到它们。
如何定义函数
在 C 语言中,定义一个函数的基本语法形式如下:
return_type function_name( parameter list ) {
body of the function
}
C 函数由一个函数头和一个函数主体组成,其中函数头又包含函数名称、参数列表、返回类型 3 部分。具体说明如下:
- 返回类型(Return Type):一个函数可以返回一个值,而
return_type
就是函数返回的值的数据类型,表示当函数执行完毕将返回一个该类型的数据。并不是所有函数都需要返回值,这时候返回类型是void
,表示无返回值。 - 函数名称(Function Name):这是函数的实际名称,函数名可以反映函数的功能,函数名和参数列表一起构成了函数签名。
- 参数(Parameters):参数列表包括函数参数的类型、顺序、数量。当调用函数时,需要按要求传递参数。但不是所有函数都需要参数,也就是说,参数是可选的。
- 函数主体(Function Body):函数主体包含一组定义函数执行任务的语句。
下面通过一个实例演示如何定义函数,这里我们会定义一个 max()
函数,它的功能是接收两个整型参数 num1
和 num2
,然后返回它们中的最大值。
/* function returning the max between two numbers */
int max(int num1, int num2)
{
/* local variable declaration */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}