2017-04-04 76 views
0

我正在学习使用编程手册中的函数指针。在那里我发现了使用bsearch()和qsort()。这两个函数有一个函数指针cmpfunc的参数。cmpfunc in bsearch()in c

在qsort()中需要cmpfunc来比较两个元素。

我不明白为什么在bsearch()中需要cmpfunc以及它是如何工作的。

请帮帮我。提前致谢。

+0

我只能假定你的意思,但通常你会将一个比较函数传递给一个排序函数,以允许用户选择他们自己的排序方案,即允许用户按照升序或降序排序元素,或者在排序之后排序他们的价值mod 5,或者你真正喜欢的任何东西。 –

回答

2

根据this文档,bsearch比较器函数与使用qsort函数的函数类似,需要对数组中的元素进行评估。如果包含了所需的元素或者在每次迭代中丢弃了一半的搜索空间,这就需要终止搜索;作用与qsort函数中的作用相同。

+0

谢谢@Codor – ishtiaq11

1

bsearch中调用比较函数cmpfunc来判断被检查的元素是否实际上与该键匹配,如果不是,则该键在列表中是早于还是晚。

+0

Thanks @Ross Presser。 – ishtiaq11