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


Groups > comp.lang.c > #18799

Re: More efficient strcmp

From gof@somewhere.invalid (Gof)
Newsgroups comp.lang.c
Subject Re: More efficient strcmp
Date 2012-03-15 13:00 +0000
Organization ATMAN - ATM S.A.
Message-ID <gof.1331816103.22577@somewhere.invalid> (permalink)
References <jjog0d$rcc$1@speranza.aioe.org> <jjsom2$9or$1@dont-email.me>

Show all headers | View raw


vaysagekv <kvvaysage@gmail.com> wrote:

>  Do you mean
>   int strcmp_fast(char* s,char* t){
>    unsigned long* uls=(unsigned long*)s;
>    unsigned long* ult=(unsigned long*)t;
>     if(*uls>*ult) return(1);
>     if(*uls<*ult) return(-1);
>     else return(strcmp(s,t));
>  }

Besides obvious misconceptions, pointed by other people in this thread, 
I'm sensitive to constness of variables and arguments. By passing pointers 
to a function without const qualifiers, you make people think that your 
function is going to modify the strings.

I think that it would be better this way (still with errors mentoined 
in other posts):

int strcmp_fast(const char *s, const char *t)
{
	const unsigned long *uls = (const unsigned long *) s;
	const unsigned long *ult = (const unsigned long *) t;

	if (*uls > *ult)
		return 1;

	if (*uls < *ult)
		return -1;

	return strcmp(s, t);
}

-- 
Gof

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


Thread

More efficient strcmp pembed2012 <once@was.enough.invalid> - 2012-03-13 21:59 +0000
  Re: More efficient strcmp Kleuske <kleuske@nowhere.net> - 2012-03-13 22:16 +0000
    Re: More efficient strcmp "BartC" <bc@freeuk.com> - 2012-03-13 22:25 +0000
      Re: More efficient strcmp Kleuske <kleuske@nowhere.net> - 2012-03-14 16:02 +0000
    Re: More efficient strcmp James Kuyper <jameskuyper@verizon.net> - 2012-03-13 18:30 -0400
    Re: More efficient strcmp Kaz Kylheku <kaz@kylheku.com> - 2012-03-13 23:05 +0000
  Re: More efficient strcmp James Kuyper <jameskuyper@verizon.net> - 2012-03-13 18:19 -0400
    Re: More efficient strcmp jacob navia <jacob@spamsink.net> - 2012-03-13 23:54 +0100
    Re: More efficient strcmp Gareth Owen <gwowen@gmail.com> - 2012-03-14 06:37 +0000
      Re: More efficient strcmp James Kuyper <jameskuyper@verizon.net> - 2012-03-14 07:32 -0400
  Re: More efficient strcmp Stephen Sprunk <stephen@sprunk.org> - 2012-03-13 17:28 -0500
  Re: More efficient strcmp Robert Wessel <robertwessel2@yahoo.com> - 2012-03-13 17:28 -0500
  Re: More efficient strcmp Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-03-13 22:43 +0000
    Re: More efficient strcmp "Joachim Schmitz" <nospam.jojo@schmitz-digital.de> - 2012-03-16 17:39 +0100
      Re: More efficient strcmp Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-03-16 18:17 +0000
  Re: More efficient strcmp Kaz Kylheku <kaz@kylheku.com> - 2012-03-13 23:03 +0000
    Re: More efficient strcmp Fritz Wuehler <fritz@spamexpire-201203.rodent.frell.theremailer.net> - 2012-03-14 15:55 +0100
      Re: More efficient strcmp Kenneth Brody <kenbrody@spamcop.net> - 2012-03-14 14:19 -0400
  Re: More efficient strcmp "BartC" <bc@freeuk.com> - 2012-03-13 23:25 +0000
  Re: More efficient strcmp Bl0ckeduser <bl0ckedusersoft@gmail.com> - 2012-03-13 21:42 -0500
    Re: More efficient strcmp Tim Rentsch <txr@alumni.caltech.edu> - 2012-03-14 15:17 -0700
      Re: More efficient strcmp Bl0ckeduser <bl0ckedusersoft@gmail.com> - 2012-03-14 19:06 -0400
        Re: More efficient strcmp Tim Rentsch <txr@alumni.caltech.edu> - 2012-03-15 18:53 -0700
  Re: More efficient strcmp Andre <lodwig@pathme.de> - 2012-03-14 14:26 +0100
  Re: More efficient strcmp China Blue Water Navy <chine.bleu@yahoo.com> - 2012-03-14 12:39 -0700
  Re: More efficient strcmp vaysagekv <kvvaysage@gmail.com> - 2012-03-15 18:24 +0530
    Re: More efficient strcmp gof@somewhere.invalid (Gof) - 2012-03-15 13:00 +0000
      Re: More efficient strcmp "BartC" <bc@freeuk.com> - 2012-03-15 15:05 +0000
        Re: More efficient strcmp Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-03-25 16:45 +0000

csiph-web