C函数

函数(function)是完成特定任务的独立程序代码单元

函数声明告诉编译器函数的名称返回类型参数

函数定义提供了函数实际主体

1、使用函数

(1)使用函数可以省去编写重复代码苦差
(2)即使程序只完成某项任务一次,也值得使用函数。因为函数程序更加模块化,从而提高了程序代码可读性,更方便后期修改完善

2、函数原型

函数原型指明了函数返回值类型函数接受的参数类型。这些信息称为该函数签名(signature)
函数原型C语言的一个强有力的工具,它让编译器捕获在使用函数时可能出现的许多错误疏漏
函数原型可以省略参数名,但是,在函数定义中不能省略参数名

3、函数的关键概念

如果想用C编出高效灵活程序,必须理解函数。把大型程序组织成若干函数非常有用,甚至很关键。如果让一个函数处理一个任务,程序会更好理解,更方便调试
函数无法直接访问其他函数中的变量。这种限制访问保护了数据的完整性。当确实需要在函数中访问另一个函数数据时,可以把指针作为函数参数

4、递归

C允许函数调用它自己,这种调用过程称为递归(recursion)
递归有时难以捉摸,有时却很方便实用结束递归是使用递归难点,因为如果递归代码中没有终止递归条件测试部分,一个调用自己的函数无限递归
递归方案更简洁,但效率却没有循环高。
一般而言,选择循环比较好。首先,每次递归都会创建一组变量,所以递归会使用的更多内存,而且每次递归调用都会把创建的一组新变量放在中。
递归调用数量受限于内存空间。由于每次函数调用要花费一定的时间,所以递归执行速度较慢
递归既有优点也有缺点。优点是递归为某些编程问题提供了最简单解决方案。缺点是一些递归算法快速消耗计算机的内存资源。另外,递归不方便阅读维护

5、回调函数

回调函数就是一个通过函数指针调用的函数。如果你把函数指针作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定事件条件发生时由另外的一方调用的,用于对该事件条件进行响应
因为可以把调用者被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型限制条件被调用函数。简而言之,回调函数就是允许用户把需要调用函数指针作为参数传递给一个函数,以便该函数处理相似事件的时候可以灵活的使用不同的方法

猜你喜欢

转载自blog.csdn.net/Hongwei_1990/article/details/90274313