Apple's Extensions To C 中:和 Blocks Programming Topics 中:都有对 qsort_b 和 qsort_r 的举例说明,这篇文章是介绍这两个函数的使用方法:qsort_b 最后一个参数就是Objective-C的block qsort_b 的第四个参数是额外参数,是一个 void * 的指针,在iOS的Framework中有很多这种方式进行参数传递...
voidQuickSort(void*base,size_tnum,size_twidth,void*context,int( *compare )(void*,constvoid*,constvoid*)){#ifOG_WIN32qsort_s( base, num, width, compare, context );#elifOG_MACOS_Xqsort_r( base, num, width, context, compare );#elifOG_LINUXCompareWrapperdata(context, compare);qsort_r...
1if(s >32) // 如果单个元素长度>322{3/*Indirect sorting.*/4char*ip = (char*) b; // 获取目标数组的地址.5void**tp = (void**) (p.t + n *sizeof(void*)); // 获取排序空间第N+1位置指针.6void**t =tp;7void*tmp_storage = (void*) (tp +n); // 排序空间的最后一个位置,...
1if(s >32) // 如果单个元素长度>322{3/*Indirect sorting.*/4char*ip = (char*) b; // 获取目标数组的地址.5void**tp = (void**) (p.t + n *sizeof(void*)); // 获取排序空间第N+1位置指针.6void**t =tp;7void*tmp_storage = (void*) (tp +n); // 排序空间的最后一个位置,...