qsort()函数如何工作?

时间:2018-08-15 18:21:40

标签: c qsort

void qsort (
    void* base,
    size_t num,
    size_t size,
    int (*compar)(const void*,const void*)
);

在排序后,qsort函数如何访问“大小”字节以获得下一个元素?
通过将void*广播到char*吗?

1 个答案:

答案 0 :(得分:2)

  

qsort函数如何访问基地址之后的“大小”字节以获得下一个元素?通过将void*广播到char*吗?

该问题固有的假设是qsort本身是用C编写的;不一定是。假设是这样。

char*的转换是一种典型的转换方式,可以,可以通过显式使用强制转换运算符,也可以将base分配给类型为char*的局部变量。

GNU C允许您直接向void指针添加一个整数,但这是C语言的不可移植扩展。

如果您对特定于的实现有疑问,请说说哪种实现。