C语言qsort()库函数用回调函数的原因

Posted 两片空白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言qsort()库函数用回调函数的原因相关的知识,希望对你有一定的参考价值。

        qsort函数的参数里有一个函数指针,这个函数指针就是一个回调函数。

        不知道大家在刚开始学的时候会不会跟我有一样的疑问,这个qsort为什么要用回调函数,直接在库函数里使用一个固定名字的比较函数,然后在使用qsort函数时,约定要写一个固定函数名的比较函数不就好了?为啥还要使用回调函数呢?

随着学习的深入,我对这个有了不一样的理解:

        首先说明,库函数的源文件都是以二进制文件,也就是目标文件保存的。程序在链接时才会去链接去库函数。

        如果这里不使用回调函数作为参数,那么库函数qsort连编译都通过不了,更加无法形成二进制文件了。使用了回调函数作为参数,此时有函数的声明,能通过编译和汇编,形成二进制文件。调用回调函数会在程序链接时,去找函数的实现,调用函数。

        所以就需要我们来编写qsort回调函数的实现,在链接时,共qsort调用。

以上是关于C语言qsort()库函数用回调函数的原因的主要内容,如果未能解决你的问题,请参考以下文章

C语言篇 + 指针进阶练习 + qsort模拟实现(回调函数思想) + 指针和数组笔试题

回调函数(callback)是啥? ,,

回调函数是啥意思 啥是回调函数

爆肝!回调函数的实用案例,建议收藏~(计算器改良,qsort快排函数应用实例,冒泡函数核心理解,模拟qsort函数)

指针进阶:qsort函数(回调函数)

回调函数和如何使用qsort函数以及最后如何运用冒泡排序完成一个各类型数据都适用的排序算法