繁体   English   中英

qsort() 函数如何工作?

[英]How qsort() function works?

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

qsort 函数如何在地址后访问“大小”字节以获取下一个元素?
通过将void*类型转换为char*

qsort 函数如何访问基地址后的“size”字节以获取下一个元素? 通过将void*类型转换为char*

问题中固有的假设是qsort本身是用 C 编写的; 不必如此。 让我们假设它是。

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

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

如果您对特定实现有疑问,请说明是什么实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM