天天看点

c 高级函数的简单用法

c 中内置了很多高级的函数,我们先使用排序函数看一下

c 高级函数的简单用法
c 高级函数的简单用法

输出结果为

c 高级函数的简单用法

为了能使这个qsort排序函数适应很多种排序情况,需要传入一个排序规则函数当做参数。

下边介绍一种函数指针数组的使用情况

假如我们要写一个群发邮件的程序,向不同的人发送不同类型的内容,很自然的想到,我们用struct 来实现

c 高级函数的简单用法
c 高级函数的简单用法

我们使用结构来存放需要的数据打印的结果如下

c 高级函数的简单用法

但是代码中充斥着大量的函数调用,每次都需要根据type来判断调用哪个函数,日后如果需要添加新的类型,就要改动很多地方的代码,这并不是我们想看到的

其实接下来的思想跟上边的枚举差不多,我们可以把一类的东西放到一个数组中,根据需要在其中取值就可以了

c 高级函数的简单用法

经过函数指针数组的改造呢,我们就得出了下边的代码

c 高级函数的简单用法
c 高级函数的简单用法

上边的单词写错了 reponse 应该改成 response ,这里就不做修改了

接下来 引入一个可以传多个参数的函数的使用方法,类似printf函数

加入某酒吧中有很多种不同的酒,现在需要写一个程序,当我们输入酒的名称的后可以获取该酒的价格,很简单,程序是这样的

c 高级函数的简单用法
c 高级函数的简单用法

现在我们已经能够获取酒的价格了,但是现在如果我提出这样一个要求,需要知道几种单酒的总价的呢。因此我们就需要写一个函数类似于这样的

由于输入的酒品的个数是不固定的,因此顺理成章的引申出了可变参数这个概念

我们先看一下打印多个int 的函数

c 高级函数的简单用法
c 高级函数的简单用法
c 高级函数的简单用法
c 高级函数的简单用法
c 高级函数的简单用法

经过我们修改后的代码是这样的

c 高级函数的简单用法
c 高级函数的简单用法

打印结果是

c 高级函数的简单用法

继续阅读