C语言的第七章主要讲解了函数的定义、返回值以及函数的声明,这些都是C语言编程中至关重要的概念。
函数是C语言中模块化编程的基础,它将一段可重复使用的代码封装起来,便于调用。函数由两部分组成:函数说明和函数体。函数的定义可以分为无参函数和有参函数。无参函数的一般形式如下:
```c
函数类型 函数名(void) {
// 说明语句部分;
// 可执行语句部分;
}
```
在这里,"void"表示函数不需要任何参数。对于旧标准的C语言,函数可以不写参数列表,但在新标准中,如果不需要参数,必须显式地使用"void"。主函数`main()`是个例外,它可以不写参数列表。
有参函数则包含一个参数列表,例如:
```c
函数类型 函数名(数据类型 参数1, 数据类型 参数2...) {
// 说明语句部分;
// 可执行语句部分;
}
```
形式参数(形参)在函数定义中用于接收调用时传入的实际参数值,它们是临时变量,仅在函数内部有效。实际参数是在调用函数时传递给被调用函数的值。
案例7.1展示了如何定义一个求两个数中较大数的函数`max()`,它接受两个整数参数`n1`和`n2`,并返回较大的那个。在`main()`函数中,我们先定义了`max()`函数,然后获取用户输入的两个数,并调用`max()`函数,将结果打印出来。
函数定义不能嵌套,意味着在一个函数的内部不能定义另一个函数。函数可以放在程序的任何位置,但主函数`main()`之前或之后的定义会影响编译器对函数的查找顺序。
函数还可以有返回值,这是通过`return`语句实现的。`return`语句的一般形式是`return (返回值表达式);`,它结束函数执行并将表达式的值返回给调用者。如果函数没有`return`语句,返回值是不确定的。无返回值的函数可以声明为`void`类型。
函数类型是指函数返回值的类型,它必须与`return`语句中表达式的类型匹配。如果没有指定函数类型,系统默认为整型。为提高代码可读性和减少错误,通常建议明确指定函数类型,尤其是对于不需要返回值的函数,应定义为`void`。
在ANSI C新标准中,函数声明(函数原型)用于告诉编译器函数的返回类型和参数信息。如果被调用函数的定义在调用之前出现,或者在所有函数定义前进行了全局声明,那么可以省略函数声明。这样做的目的是确保编译器能够正确处理参数类型和数量,避免类型不匹配的问题。
理解和掌握函数的定义、返回值、类型以及声明对于编写高效、可靠的C语言程序至关重要。通过良好的编程习惯,我们可以编写出更易读、更少错误的代码。