ciqsort是c语言库函数中定义的快速排序函数 关于函数的定义如下图:
_ACRTIMP void __cdecl qsort(
_Inout_updates_bytes_(_NumOfElements* _SizeOfElements) void* _Base, //指向数组的第一个元素地址的指针
_In_ size_t _NumOfElements,//数组长度的参数
_In_ size_t _SizeOfElements,//数组元素的大小,单位是字节
_In_ _CoreCrtNonSecureSearchSortCompareFunction _CompareFunction
);
给数组元素的大小是为了能找到下一个元素的地址。
关于最后一个参数,是一个指向函数的函数指针,该函数时比较数组元素的方法,需要使用者自行编写该函数。
这么做的原因如下:
对于不同类型的数组,比较方式是不一样的。比如对于整型数组来说,直接比较数据大小即可,但对于结构体数组,则需要自行决定根据哪一个结构体成员的大小来进行比较。编写函数者是难以找到一个统一的方法面对不同类型数组的比较的。
虽然需要使用者自行编写此函数,但这么做使使用者使用qsort函数时会更