【C语言】qsort

原型

void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))

功 能

使用排序例程compar进行排序。

参数

base -- 指向要排序的数组的第一个元素的指针
nitems -- 由 base 指向的数组中元素的个数。
size -- 数组中每个元素的大小,以字节为单位。
compar -- 用来比较两个元素的函数

int compar(const void *p1, const void *p2);
如果compar返回值小于0(< 0),那么p1所指向元素会被排在p2所指向元素的左面;
如果compar返回值等于0(= 0),那么p1所指向元素与p2所指向元素的顺序不确定;
如果compar返回值大于0(> 0),那么p1所指向元素会被排在p2所指向元素的右面。

头文件

stdlib.h

static int dev_cmp(const void *a, const void *b)
{
	return (int)(*(char *const *)a - *(char *const *)b);
}

static int sync_devices_list(void)
{
	struct ibv_device **new_list;
	int numb_dev;

	new_list = ibv_get_device_list(&numb_dev);
	qsort(new_list, numb_dev, sizeof(struct ibv_device *), dev_cmp);
    ... ...
}

参考:

qsort_百度百科 (baidu.com)

你可能感兴趣的:(C语言,编程,c语言,linux)