Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #26074

Re: qsort man page

From Tim Rentsch <txr@alumni.caltech.edu>
Newsgroups comp.lang.c
Subject Re: qsort man page
Date 2012-09-07 11:38 -0700
Organization A noiseless patient Spider
Message-ID <kfn627pisps.fsf@x-alumni2.alumni.caltech.edu> (permalink)
References <89644623-7e1c-4f8b-9f4d-6443526f0f73@u2g2000yqj.googlegroups.com> <0.7b858dd95d3281469ee0.20120721225709BST.87boj893re.fsf@bsb.me.uk> <500B7D7F.7CA2@mindspring.com> <0.58ba0ee876bab752444c.20120722144128BST.871uk37w1j.fsf@bsb.me.uk>

Show all headers | View raw


Ben Bacarisse <ben.usenet@bsb.me.uk> writes:

> pete <pfiland@mindspring.com> writes:
>
>> Ben Bacarisse wrote:
>>> 
>>> Bill Cunningham <billcun@suddenlink.net> writes:
> <snip>
>>> > #include <stdio.h>
>>> > #include <stdlib.h>
>>> > #include <string.h>
>>> > static int
>>> > cmpstringp(const void *p1, const void *p2)
>>> > {
>>> >     /* The actual arguments to this function are "pointers to
>>> >        pointers to char", but strcmp(3) arguments are "pointers
>>> >        to char", hence the following cast plus dereference */
>>> >     return strcmp(* (char * const *) p1, * (char * const *) p2);
>>> > }
>>
>> I think that the way that the const keyword
>> is used in the return statement,
>> shows some confusion on the part of the author.
>>
>> It causes the result of the dereference
>> in the strcmp function call, to be const qualified,
>> which is neither required nor consistent
>> with the parameters of strcmp
>> being pointers to const qualified types.
>
> I am not so sure.  The const that is there is a Good Const.  Omitting it
> might cause a warning (gcc will oblige) about "casting away" const.  The
> question as to whether there should be another:
>
>    *(const char *const *)p1
>
> is not clear cut to me.  The cast, as written, is a correct reflection
> of the object being sorted, and there is some documentary merit in doing
> that -- cast only to the type of the thing being sorted.   [snip]

It is a correct reflection of the object being _compared_.
It is not a correct reflection of the object being _sorted_,
which must be writable so it can be moved within the larger
array.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

qsort man page Bill Cunningham <billcun@suddenlink.net> - 2012-07-21 14:14 -0700
  Re: qsort man page Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-07-21 22:57 +0100
    Re: qsort man page Bill Cunningham <billcun@suddenlink.net> - 2012-07-21 18:07 -0700
      Re: qsort man page Mark Storkamp <mstorkamp@yahoo.com> - 2012-07-23 08:49 -0500
        Re: qsort man page Bill Cunningham <billcun@suddenlink.net> - 2012-07-23 10:44 -0700
          Re: qsort man page tom st denis <tom@iahu.ca> - 2012-07-26 09:02 -0700
            Re: qsort man page John Gordon <gordon@panix.com> - 2012-07-26 16:41 +0000
              Re: qsort man page tom st denis <tom@iahu.ca> - 2012-07-26 09:59 -0700
      Re: qsort man page Ike Naar <ike@sverige.freeshell.org> - 2012-07-23 14:43 +0000
        Re: qsort man page Bill Cunningham <billcun@suddenlink.net> - 2012-07-23 13:16 -0700
          Re: qsort man page Barry Schwarz <schwarz45@yahoo.com> - 2012-07-23 13:29 -0700
            Re: qsort man page Bill Cunningham <billcun@suddenlink.net> - 2012-07-23 16:56 -0700
              Re: qsort man page Noob <root@localhost> - 2012-07-24 09:29 +0200
                Re: qsort man page Keith Thompson <kst-u@mib.org> - 2012-07-24 23:17 -0700
              Re: qsort man page Barry Schwarz <schwarz45@yahoo.com> - 2012-07-25 09:51 -0700
                Re: qsort man page Bill Cunningham <billcun@suddenlink.net> - 2012-07-25 20:51 -0700
                Re: qsort man page Barry Schwarz <schwarz45@yahoo.com> - 2012-07-26 14:27 -0700
                Re: qsort man page Bill Cunningham <billcun@suddenlink.net> - 2012-07-26 18:20 -0700
                Re: qsort man page Barry Schwarz <schwarz45@yahoo.com> - 2012-07-28 07:24 -0700
        Re: qsort man page pete <pfiland@mindspring.com> - 2012-07-23 23:39 -0400
    Re: qsort man page pete <pfiland@mindspring.com> - 2012-07-22 00:11 -0400
      Re: qsort man page Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-07-22 14:41 +0100
        Re: qsort man page pete <pfiland@mindspring.com> - 2012-07-22 13:01 -0400
          Re: qsort man page Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-07-22 21:36 +0100
            Re: qsort man page pete <pfiland@mindspring.com> - 2012-07-23 22:40 -0400
              Re: qsort man page pacman@kosh.dhis.org (Alan Curry) - 2012-07-24 04:29 +0000
                Re: qsort man page Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-07-24 11:40 +0100
                Re: qsort man page pete <pfiland@mindspring.com> - 2012-07-24 22:06 -0400
        Re: qsort man page Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 11:38 -0700
  Re: qsort man page pete <pfiland@mindspring.com> - 2012-07-23 23:34 -0400
    Re: qsort man page pete <pfiland@mindspring.com> - 2012-07-24 00:07 -0400
  Re: qsort man page "christian.bau" <christian.bau@cbau.wanadoo.co.uk> - 2012-07-24 16:36 -0700

csiph-web