This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 12/04/2014 10:11 AM, Yaakov Selkowitz wrote: >> My personal preference is the glibc style (the opaque argument last in >> both qsort_r and the comparator), not the BSD style (the opaque argument >> first in both calls), This is because POSIX already has other >> standardized functions in the glibc style (pthread_cleanup_push, >> pthread_create), and none in the BSD styloe. > > Generally I would agree, but wouldn't it make more sense to group > together the arguments to compar, IOW: > > void qsort_r(void *base, size_t nmemb, size_t size, void *arg, int > (*compar)(const void *, const void *, void *)); No - I generally see code doing 'callback, opaque' and expecting a call to callback(other args..., opaque). What you've written here matches neither BSD nor glibc, and does NOT preserve the pthread_create precedent of 'callback, opaque' turning into a call to callback(..., opaque). BSD was at least consistent in having 'opaque, callback' turn into 'callback(opaque, ...)' (opaque always first), but as Corinna points out, this form is not shim-able, while glibc's opaque-last is. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |