在qsort中,有办法停止吗?

问题描述 投票:0回答:1

qsort 是所有平台中标准 C 库的重要组成部分。在引入该函数的比较函数中,我可能得出结论,两个项目是相同的,并且我决定不再继续对元素进行排序的过程。 我如何通知qsort不要继续排序?

c
1个回答
0
投票

如何通知qsort不要继续排序?

一种方法做到这一点

请勿这样做:让 compare 函数在排序过程中以不同方式执行。

比较函数受

约束

当相同的对象(由 size 字节组成,无论它们当前在数组中的位置如何)多次传递给比较函数时,结果应彼此一致。也就是说,对于

qsort
,它们应定义数组的总排序,对于
bsearch
,同一对象应始终以相同的方式与键进行比较。 C23dr § 7.24.5 4

这样做否则会导致未定义的行为(UB)。

© www.soinside.com 2019 - 2024. All rights reserved.