如何将函数作为参数传入另一函数里

文章目录


更新

起个别名只是为了让函数中的变量描述更加通俗易懂,有时候你可以直接引用不需要传。所以平时不传或者直接把函数声明搬过来传入都可以,在大工程中为了方便理解变量名和程序严谨性所以起别名传入。
至于我为什么会啰里八嗦一大堆纯粹因为我是傻逼。



作用

有时,我们需要对不同算法进行相同的测试,例如:时间消耗情况。所以我们需要在我们计算时间消耗函数中把算法函数作为参数传入,这该怎么做呢?


CODE

// 排序算法函数的别名
typedef void (*sortHandler)(SortTable *);
// 测试sortName的排序算法
void testSort(const char *sortName, sortHandler sort, SortTable *table);

解释

首先,typedef定义了一个指针*sortHandler,指向了一个参数为SortTable*且返回值为void的函数,这就给这个函数起了个别名,使其有了个类型,类似于int
接着,在测试函数中传入了参数sortHandler sort,代表了一个符合sortHandler类型条件的sort函数。
这样便完成了函数的传入,只要函数类型符合,就能传入,如此我们便能对解决同类型问题的算法进行测试,例如排序算法,计算不同排序算法之间的耗时差异。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值