[code]int (*qscmp)(); int qses; qsort(a, n, es, fc) char *a; int n, es; int (*fc)(); { qscmp = fc; qses = es; qs1(a, a+n*es); } qs1(a, l) char *a, *l; { register char *i, *j, *es; char *lp, *hp; int n, c; es = qses; start: if((n=l-a) <= es) return; n = ((n/(2*es))*es) & 077777; hp = lp = a+n; i = a; j = l-es; for(;;) { if(i < lp) { if((c = (*qscmp)(i, lp)) == 0) { ...
1. gcc version 4.1.2 2. 部分源码: int compare_name( dir_ const *a, dir_ const *b) { return strcmp(a->name, b->name); } int sort_dirs(dir_ *dirs, int dir_index) { qsort(dirs,dir_index,sizeof(dir_),compare_name); return 0; } 3. 编译时: gcc -c -Wall -O2 -fPIC -I../include -o ../src/log/rollover.o ../src/log/rollover.c ../src/log/rollover.c: In function...
C版第一个问题: 如何对一维指针数组排序? 问题很简单,我要对一个一维数组排序,用标准库的qsort函数,但现在有个问题,我的一维数组内存放的不是真正的数据,而是数据的指针,我的排序函数却已经写好了,是对数据进行排序的,不能改动,如何利用原有的函数对存放指针的一维数组排序? [ 本帖最后由 newbuding 于 2008-5-31 17:07 编辑 ]
线程编程刚学。。。所以很多函数的使用不太理解。。。 另外,排序每次的 left,right都要进行修改,使用全局变量不能控制么。。。求助!!!
[code]#include
[code]
#include