C函数
其他
2019-06-16 12:03:39
阅读次数: 0
函数(function)
是完成特定任务
的独立程序代码单元
。
函数声明
告诉编译器
函数的名称
、返回类型
和参数
。
函数定义
提供了函数
的实际主体
。
1、使用函数
(1)使用函数
可以省去编写重复代码
的苦差
。
(2)即使程序
只完成某项任务一次,也值得使用函数
。因为函数
让程序
更加模块化
,从而提高了程序代码
的可读性
,更方便后期修改
、完善
。
2、函数原型
函数原型
指明了函数
的返回值类型
和函数
接受的参数类型
。这些信息
称为该函数
的签名(signature)
。
函数原型
是C语言
的一个强有力
的工具,它让编译器
捕获在使用函数
时可能出现的许多错误
或疏漏
。
函数原型
可以省略参数名
,但是,在函数定义
中不能省略参数名
。
3、函数的关键概念
如果想用C
编出高效灵活
的程序
,必须理解函数
。把大型程序组织
成若干函数
非常有用,甚至很关键
。如果让一个函数
处理一个任务
,程序会更好理解
,更方便调试
。
函数
无法直接访问
其他函数
中的变量
。这种限制访问
保护了数据的完整性
。当确实需要在函数
中访问另一个函数
的数据
时,可以把指针
作为函数
的参数
。
4、递归
C
允许函数
调用它自己
,这种调用过程称为递归(recursion)
。
递归有时难以捉摸
,有时却很方便实用
。结束递归
是使用递归
的难点
,因为如果递归代码
中没有终止递归
的条件测试部分
,一个调用自己的函数
会无限递归
。
递归方案
更简洁,但效率
却没有循环
高。
一般而言,选择循环
比较好。首先,每次递归
都会创建一组变量
,所以递归
会使用的更多内存
,而且每次递归调用
都会把创建的一组新变量
放在栈
中。
递归调用
的数量
受限于内存空间
。由于每次函数调用
要花费一定的时间
,所以递归
的执行速度较慢
。
递归
既有优点
也有缺点
。优点是递归
为某些编程问题提供了最简单
的解决方案
。缺点是一些递归算法
会快速消耗
计算机的内存资源
。另外,递归
不方便阅读
和维护
。
5、回调函数
回调函数
就是一个通过函数指针
调用的函数
。如果你把函数
的指针
作为参数
传递给另一个函数
,当这个指针
被用来调用
其所指向的函数
时,我们就说这是回调函数
。回调函数不是由该函数
的实现方直接调用
,而是在特定
的事件
或条件
发生时由另外的一方
调用的,用于对该事件
或条件
进行响应
。
因为可以把调用者
与被调用者
分开,所以调用者
不关心谁是被调用者
。它只需知道存在一个具有特定原型
和限制条件
的被调用函数
。简而言之,回调函数
就是允许用户把需要调用
的函数
的指针
作为参数
传递给一个函数
,以便该函数
在处理相似事件
的时候可以灵活
的使用不同的方法
。
转载自blog.csdn.net/Hongwei_1990/article/details/90274313