在C语言中,函数是程序的基本模块,它们可以完成特定的任务并可以被其他代码段调用。第八章主要讲解了函数的定义、返回值、函数类型以及调用方式。
函数由函数说明和函数体两部分构成。无参函数的定义形式如下:
```c
函数类型 函数名() {
// 说明语句部分
// 可执行语句部分
}
```
而有参函数的定义则包含参数列表:
```c
函数类型 函数名(数据类型 参数, 数据类型 参数2...) {
// 说明语句部分
// 可执行语句部分
}
```
例如,定义一个求两个数中较大数的函数`max`:
```c
int max(int n1, int n2) {
return (n1 > n2 ? n1 : n2);
}
```
函数定义不允许嵌套,这意味着在一个函数内部不能定义另一个函数。函数可以放在程序的任意位置,包括`main()`函数之前或之后。如果一个函数既没有参数,函数体也为空,那么这就是一个空函数,如:
```c
void empty_func(void) {
}
```
函数分为有返回值函数和无返回值函数。返回值通过`return`语句获取,如:
```c
return (返回值表达式);
```
无返回值函数可以定义为`void`类型,表明它不会返回一个值。函数类型需要与`return`语句中的表达式类型一致,若未指定函数类型,默认为整型。
在ANSI C新标准中,函数调用前通常会提供函数原型,即函数类型和参数列表,如:
```c
函数类型 函数名(数据类型 参数名, 数据类型 参数名2...);
```
在两种情况下,可以省略被调用函数的说明:当调用的函数定义在前面,或者在所有函数定义前已全局说明。
函数调用时,必须确保实际参数(实参)的数量、类型和顺序与被调用函数的形式参数(形参)匹配。C语言中,函数调用可以以表达式、语句或作为另一个函数的实参出现:
1. 函数表达式:函数的返回值参与表达式运算,要求函数有返回值。
2. 函数语句:不返回值的函数可以作为独立的执行单元。
3. 函数实参:将函数作为参数传递,通常传递的是函数的返回值。
C语言的函数是程序设计的重要工具,理解函数的定义、返回值、类型和调用机制对于编写高效、可读性强的代码至关重要。