int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(arry, N, sizeof(arry[0]), cmp); qsort(指向一个要排序数组的首地址 , 指要排序数组的元素个数 , 指每个元素的大小 , cmp); 这个是一个从大到小的排序如果要从小到大排序可以讲cmp函数改为如下:...
首先介绍一下qsort函数,其定义在stdlib.h这个头文件中,其结构为: voidqsort(void* base,size_tnum,size_twidth,int(__cdecl*compare)(constvoid*,constvoid*)); 参数依次表示的含义是,待排序数组,数组大小,数组中单个元素所占的字节小大,以及排序规则(一个指向函数的指针); 关于cmp函数,即定义了排序的规则,...
int cmp(struct data v1,struct data v2){ if(v1.cnt > v2.cnt) return 1;else if(v1.cnt < v2.cnt) return -1;else return strcmp(v1.w,v2.w);}
cmp 就是比较函数,用于确定两个对象的大小关系 这是需要你自己定义的
这表明,参数:比较函数中,比较函数的签名应等价于如下形式:(bsearch的比较函数与qsort完全一致) int cmp(const void *a, const void *b); 该函数必须不修改传递给它的对象,而且在调用比较相同对象时必须返回一致的结果,无关乎它们在数组中的位置。 也就是说,在C语言中应当写成“const void *”的形式,并在第...