From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: fc89c,97188312486d4578 X-Google-Attributes: gidfc89c,public X-Google-Thread: 10db24,4cf070091283b555 X-Google-Attributes: gid10db24,public X-Google-Thread: 103376,97188312486d4578 X-Google-Attributes: gid103376,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public From: seebs@solutions.solon.com (Peter Seebach) Subject: Re: What's the best language to learn? [was Re: Should I learn C or Pascal?] Date: 1996/08/20 Message-ID: <4vd2u2$ka1@solutions.solon.com>#1/1 X-Deja-AN: 175360295 references: <4u7hi6$s2b@nntp.seflin.lib.fl.us> <01bb8c6d$c62d44c0$87ee6fce@timpent.airshields.com> organization: Usenet Fact Police (Undercover) reply-to: seebs@solon.com newsgroups: comp.edu,comp.lang.ada,comp.lang.c,comp.lang.c++,comp.unix.programmer Date: 1996-08-20T00:00:00+00:00 List-Id: In article , Mark Wooding wrote: > char buf[...]; > char *p; > ... > while (buf[0]==' ') > { > for (p=buf;p[0]=p[1];p++) > ; > } > while (buf[strlen(buf)-1]==' ') > buf[strlen(buf)-1]=0 >I can't believe that anyone with an understanding of what goes on `under >the covers' would possibly write anything like this without feeling ill. >An inkling of what this would be translated into by any implementation >would surely avoid horrors like this. I am told at least one compiler is clever enough to handle the second part usefully. I must disagree with your assertion. Not that long ago, someone posted a bit of disassembled code from a major vendor's library, in which strchr() was implemented roughly as memchr(s, c, strlen(s)); - the key being that it was implemented in assembly. From the usage, my understanding is that it had been written in assembly to avoid the overhead of the function call to strlen(). There are idiots programming at every level of the machine. (Curiously, if you look closely at the above code, you'll notice that it will write past the beginning of at least one obvious string.) -s >Anyone who asks `what's wrong with that' will be shot. >-- >[mdw] > >`When our backs are against the wall, we shall turn and fight.' > -- John Major > -- Peter Seebach - seebs@solon.com - Copyright 1996 - http://www.solon.com/~seebs Unix/C Wizard - send mail for help, or send money for consulting! The *other* C FAQ, the hacker FAQ, et al. See web page above. Unsolicited email (junk mail and ads) is unwelcome, and will be billed for.