Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Dr Nick <3-nospam@temporary-address.org.uk> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: int * vs char * |
| Date | 2011-07-05 07:45 +0100 |
| Message-ID | <87ei25ns3h.fsf@temporary-address.org.uk> (permalink) |
| References | (4 earlier) <yp6dnQAIK81zT5_TnZ2dnUVZ_qWdnZ2d@posted.internetamerica> <iu10vs$76k$1@dont-email.me> <96ifliFmo4U6@mid.individual.net> <iu26ni$rjm$1@dont-email.me> <iutd6j$e7o$1@dont-email.me> |
Shao Miller <sha0.miller@gmail.com> writes: > On 6/24/2011 10:24, Stephen Sprunk wrote: >>> >>> The C++ standard replaces the C strchr() with two overloads: >>> >>> const char* strchr(const char* s, int c); >>> char* strchr( char* s, int c); >> >> Compare to the only option C provides: >> >> char *strchr(const char *s, int c); >> >> This takes a const or non-const argument but always returns a non-const >> pointer; the potential loss of const-ness invites bugs. Thanks to >> overloading, the C++ version is able to return a pointer that matches >> the const-ness of its argument, preventing bugs. > > A fellow yesterday advised of another strategy, using a GCC extension: > > #define strchr(s, c) ((__typeof__(s)) (strchr((s), (c))) > > That is, casting the result to the original type of 's'. Heheheh. That's either very neat or unutterably ghastly. I'm still thinking about which it is. -- Online waterways route planner | http://canalplan.eu Plan trips, see photos, check facilities | http://canalplan.org.uk
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
int * vs char * yugandhar <nospam@nospam.com> - 2011-06-21 21:49 +0000
Re: int * vs char * John Gordon <gordon@panix.com> - 2011-06-21 21:58 +0000
Re: int * vs char * "Morris Keesan" <mkeesan@post.harvard.edu> - 2011-06-21 20:25 -0400
Re: int * vs char * Ian Collins <ian-news@hotmail.com> - 2011-06-22 09:59 +1200
Re: int * vs char * Ike Naar <ike@sverige.freeshell.org> - 2011-06-21 22:18 +0000
Re: int * vs char * Shao Miller <sha0.miller@gmail.com> - 2011-06-21 18:34 -0500
Re: int * vs char * Keith Thompson <kst-u@mib.org> - 2011-06-21 15:42 -0700
Re: int * vs char * Noob <root@127.0.0.1> - 2011-06-22 10:28 +0200
Re: int * vs char * Shao Miller <sha0.miller@gmail.com> - 2011-06-22 05:23 -0500
Re: int * vs char * James Kuyper <jameskuyper@verizon.net> - 2011-06-22 06:25 -0400
Re: int * vs char * Ian Collins <ian-news@hotmail.com> - 2011-06-23 07:56 +1200
Re: int * vs char * Shao Miller <sha0.miller@gmail.com> - 2011-06-22 18:12 -0500
Re: int * vs char * Ian Collins <ian-news@hotmail.com> - 2011-06-23 10:23 +1200
Re: int * vs char * Keith Thompson <kst-u@mib.org> - 2011-06-22 17:23 -0700
Re: int * vs char * Ian Collins <ian-news@hotmail.com> - 2011-06-23 12:54 +1200
Re: int * vs char * Keith Thompson <kst-u@mib.org> - 2011-06-22 18:18 -0700
Re: int * vs char * Ian Collins <ian-news@hotmail.com> - 2011-06-23 13:23 +1200
Re: int * vs char * Shao Miller <sha0.miller@gmail.com> - 2011-06-24 15:39 -0400
Re: int * vs char * Ian Collins <ian-news@hotmail.com> - 2011-06-25 09:28 +1200
Re: int * vs char * Keith Thompson <kst-u@mib.org> - 2011-06-24 14:58 -0700
Re: int * vs char * Ian Collins <ian-news@hotmail.com> - 2011-06-25 10:06 +1200
Re: int * vs char * Shao Miller <sha0.miller@gmail.com> - 2011-06-26 15:44 -0500
Re: int * vs char * Keith Thompson <kst-u@mib.org> - 2011-06-24 14:29 -0700
Re: int * vs char * Ian Collins <ian-news@hotmail.com> - 2011-06-25 09:36 +1200
Re: int * vs char * Shao Miller <sha0.miller@gmail.com> - 2011-06-26 16:24 -0500
Re: int * vs char * Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-25 08:39 -0700
Re: int * vs char * gordonb.5qick@burditt.org (Gordon Burditt) - 2011-06-22 23:49 -0500
Re: int * vs char * Stephen Sprunk <stephen@sprunk.org> - 2011-06-22 11:31 -0500
Re: int * vs char * gordonb.idn9q@burditt.org (Gordon Burditt) - 2011-06-23 00:45 -0500
Re: int * vs char * pacman@kosh.dhis.org (Alan Curry) - 2011-06-23 20:08 +0000
Re: int * vs char * Stephen Sprunk <stephen@sprunk.org> - 2011-06-23 22:40 -0500
Re: int * vs char * Ian Collins <ian-news@hotmail.com> - 2011-06-24 15:46 +1200
Re: int * vs char * Stephen Sprunk <stephen@sprunk.org> - 2011-06-24 09:24 -0500
Re: int * vs char * Shao Miller <sha0.miller@gmail.com> - 2011-07-04 18:00 -0400
Re: int * vs char * Dr Nick <3-nospam@temporary-address.org.uk> - 2011-07-05 07:45 +0100
Re: int * vs char * Harald van Dijk <truedfx@gmail.com> - 2011-07-05 10:39 -0700
Re: int * vs char * Shao Miller <sha0.miller@gmail.com> - 2011-07-05 14:09 -0400
Re: int * vs char * Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-07-07 21:56 +0300
Re: int * vs char * Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-07-08 02:46 +0300
Re: int * vs char * Shao Miller <sha0.miller@gmail.com> - 2011-07-07 22:26 -0400
Re: int * vs char * Stephen Sprunk <stephen@sprunk.org> - 2011-07-07 22:41 -0500
Re: int * vs char * "Joel C. Salomon" <joelcsalomon@gmail.com> - 2011-07-05 15:32 -0400
Re: int * vs char * Shao Miller <sha0.miller@gmail.com> - 2011-07-06 09:58 -0400
Re: int * vs char * Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-23 01:02 -0700
Re: int * vs char * Ian Collins <ian-news@hotmail.com> - 2011-06-23 20:11 +1200
Re: int * vs char * Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-25 09:23 -0700
Re: int * vs char * Keith Thompson <kst-u@mib.org> - 2011-06-25 12:37 -0700
Re: int * vs char * Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-27 11:40 -0700
Re: int * vs char * Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-06-21 21:46 -0400
Re: int * vs char * "Kleuskes & Moos" <kleuske@xs4all.nl> - 2011-06-22 10:06 -0700
Re: int * vs char * Keith Thompson <kst-u@mib.org> - 2011-06-22 13:06 -0700
Re: int * vs char * "Kleuskes & Moos" <kleuske@xs4all.nl> - 2011-06-22 13:29 -0700
Re: int * vs char * Stephen Sprunk <stephen@sprunk.org> - 2011-06-21 21:29 -0500
csiph-web