函数就是功能,每一个函数用来实现一个特定的功能。
在设计一个较大的程序时,往往采用模块化程序设计的思路,把它分成若干个程序模块,每一个模块包括一个或多个函数每个函数实现一个特定的功能。一个 C 程序可由一个主函数和若干其它函数构成。
说明:
C 语言要求函数必须先定义后使用。
函数定义要包括函数名、函数类型、函数参数名和参数类型以及函数功能(函数体)。
1. 定义无参函数
定义无参函数的一般形式为:
类型名 函数名(void)
{
函数体
}
括号内的 void 表示函数没有参数,void 可省略。
2. 定义有参函数
定义有参函数的一般形式为:
类型名 函数名(形式参数列表)
{
函数体
}
若函数体为空,则称为空函数。
函数调用的一般形式为:
函数名(实参列表)
若调用无参函数,则实参列表可以没有。
1. 形式参数和实际参数
在调用有参函数时,主调函数和被调函数之间有数据传递关系。定义函数时的参数称为形式参数(形参),调用函数时的参数称为实际参数(实参)。
2. 实参和形参间的数据传递
在调用函数过程中,系统会把实参的值传递给被调用函数的形参。形参的值仅在调用期间有效。
说明:
注意:实参向形参的数据传递时值传递,只能由实参传给形参。实参和形参在内存中占用不同的存储单元。
通过函数调用可以得到一个函数值(函数返回值)。
说明:
#include
指令引用有关头文件。函数首部称为函数原型,使用函数首部进行函数声明。函数首部包含了函数名、函数类型、参数个数和参数顺序,从而可以对函数调用的合法性进行检查。
函数声明的一般形式有两种:
函数类型 函数名(参数类型 1 参数名 1, ..., 参数类型 n 参数名 n);
函数类型 函数名(参数类型 1, ..., 参数类型 n);
函数声明中可以省略形参名。
注意:函数的定义是指对函数功能的确立,包括函数名、函数值类型、形参及其类型以及函数体。函数声明的作用是将函数的名字、函数类型以及形参的类型、个数和顺序通知编译系统,以便在调用时进行检查,它不包括函数体。
C 语言的函数不能嵌套定义,但可以嵌套调用,即在调用一个函数的过程中,又调用另一个函数。
在调用一个函数的过程中直接或间接的调用函数本身,称为函数的递归调用。
程序中不应出现无终止的递归调用,而应是有限次数的、有终止的递归调用。
原文:https://www.cnblogs.com/peabits/p/15207393.html