库函数qsort函数的实现

本文介绍了回调函数的概念,通过一个生动的故事帮助理解回调函数的工作原理,并强调回调函数不是由直接实现方调用。接着,文章重点讲述了回调函数在排序中的应用,给出了qsort函数(冒泡排序实现)的详细说明,包括其参数含义,并展示了字符串排序的运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,先讲一下回调函数。

回调函数:就是一个通过指针调用的函数。把一个函数的地址作为参数传为另一个函数,当这个指针被用来调用其指向的函数时,就是回调函数。

在这里,讲述一个生活中的小故事来深刻理解回调函数:比如去买东西,却发现商店里面需要的东西没有了,所以把电话号留给了店员,过几天后,商店进了新货回来,然后店员打电话通知可以去买东西了。所以,电话号就是回调函数,店员打电话通知你就是调用回调函数。

注意:回调函数不是由该函数的实现方直接调用,而是在特定的时间或者条件发生时由另外的一方调用的。

回调函数最经典的用法之一就是用来针对不同的数据类型进行排序,下面我写了一个库函数qsort函数的实现(冒泡排序):

qort函数有4个参数(void *base,int count,int size,int(*cmp)(void *,void *));(起始位置,数组的个数,数组每一个元素的类型大小,函数指针)

#include<stdio.h>
//#include<stdlib.h>
#include<string.h>
#include<assert.h>
int int_cmp(const void *x,const void *y)//整型
{
	int a = *((int *)x);
	int b = *((int *)y);
	return a>b ? 1 : a<b ? -1 : 0;
}
int double_cmp(const void *x,c
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值