C语言的qsort函数

C函数————qsort 函数

qsort()看起来和C++的sort()差不多,但是其实差别很大,
qsort的cmp函数,传入的是指针,返回值是int
sort的则传入值,返回值是bool
当qsort的返回值是0时,数组的顺序可能发生改变,这带来了不确定性
当有不改变相同大小元素的顺序时,需要对cmp函数做出调整
qsort的cmp函数必须使用const void 作为形参

// sort
bool cmp(int i_val1,int i_val2);
// qsort
int cmp(const void* p1,const void* p2);

当cmp函数返回值>1时,p1排前面
当cmp函数返回值>1时,p2排前面

所以,可以根据需要,调整,如

int cmp_cpu(const void* cpu1,const void* cpu2) {
	
        int result = (cpu*)cpu1->total_remain_time -(cpu*)cpu2->total_remain_time;
	if (result == 0)
		return 1;
	return result;
}
posted @ 2021-03-28 03:42  danniserena  阅读(133)  评论(0编辑  收藏  举报