函数

来源:互联网 发布:软件项目技术质量指标 编辑:程序博客网 时间:2024/04/20 12:07

9.1函数概述

 函数是用于完成特定任务的程序代码的自包含单元。1.导致执行某些动作。2.返回一个值以供使用。

函数包括函数原型、函数调用和函数定义。

函数原型声明函数类型;调用前要声明,函数定义通常放在最后。

9.1.1函数参数

函数原型中定义的参数是形式参数,是局部变量,是函数私有的,不同的函数可以定义相同的函数名。

9.1.2带参数函数原型声明

9.1.3调用带有参数的函数:实际参数

形式参数是被调函数中的变量,而实际参数是调用函数分配给被调函数变量的特定数值。

因为只是值的复制,所以不管在被调函数中进行什么操作,调用函数中的原数值不会受到任何影响。

9.1.4使用return从函数中返回一个值

9.1.5函数类型

函数类型应和返回值类型相同。无返回值的函数应该被声明为void类型。早期函数不声明类型会默认为int,C99不

再支持这种形式。ANSI要求在函数声明中说明参数类型。

9.1.6无参数和不确定参数

ANSI C要求没有参数时使用void,还可以用省略号表示参数个数是不定的。

9.2递归

C允许一个函数调用其本身,这种调用过程被称作递归。必须设定终止递归的条件检测,否则会无限制进行递归。

递归有时可替代循环,但效率不如循环高。

9.2.3尾递归

把递归调用语句放在函数结尾即恰在return语句之前,称为尾递归。

9.2.4递归和反向计算

处理一个十进制转二进制的问题。

递归的优点是对于某些问题提供了简单的解决办法,缺点消耗内存很快。

9.3多源代码文件程序的编译

(1)Unix下

cc file1.c file2.c把两个文件编译到一起生成一个可执行文件,如果改变了1个,可以用cc file1.c file2.c链接到第二个目标代码。

(2)Linux下

与Unix一样,编译器是gcc

(3)DOS下

与Unix一样,不过目标文件是.obj

(4)Windows下

把多个文件加到一个工程下

9.4头文件的使用

如果main函数在一个文件中,函数在另一个文件中,这时把函数声明放在头文件中,在main中就不用声明函数原型了,直接include头文件即可。

9.5地址运算符:&

普通的函数调用实参传递给行参的只是数值,不能影响到实参的改变。

指针是一个其数值为地址的变量。指针变量的数值表示的是地址。

间接运算符*,取该地址中的值。&表示取某个变量的地址。

指针声明:类型 * 指针名

指针输出格式:%p