void qsort (
void* base,
size_t num,
size_t size,
int (*compar)(const void*,const void*)
);
在排序后,qsort函数如何访问“大小”字节以获得下一个元素?
通过将void*
广播到char*
吗?
答案 0 :(得分:2)
qsort函数如何访问基地址之后的“大小”字节以获得下一个元素?通过将
void*
广播到char*
吗?
该问题固有的假设是qsort
本身是用C编写的;不一定是。假设是这样。
到char*
的转换是一种典型的转换方式,可以,可以通过显式使用强制转换运算符,也可以将base
分配给类型为char*
的局部变量。
GNU C允许您直接向void指针添加一个整数,但这是C语言的不可移植扩展。
如果您对特定于的实现有疑问,请说说哪种实现。