Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Optimizing C code for speed

Author: Matt Taylor

Date: 10:25:30 01/01/03

Go up one level in this thread


On January 01, 2003 at 11:50:58, Lieven Clarisse wrote:

>I was wondering if there is a good book about how to write efficient C code. I
>am not talking about algorithms, but the way *how* to write things, eg
>
>which is faster :
>do {}  while()    or     while () {}
>
>-------
>I know for instance that:
>
>ptr=&R[i];
>if((*ptr==3)||(*ptr==7)) {;}
>
>is faster then:
>
>if((R[i]==3)||(R[i]==7)) {;}
>
>Is there a good book that reviews all those kinds of tricks?
>
>regards,
>
>Lieven

It varies per compiler. There is an even faster method for your second case:

x = R[i];
if (x == 3 || x == 7) {;}

The only way to know is to look at compiler output. I know for VC, the compiler
I use most often, it chokes on 64-bit manipulations, stack alignment > 4 bytes,
and small structures. It usually generates nice code with conditionals such as:

int is_below(int x, int y)
{
    return (x < y ? 1 : 0);
}

-Matt



This page took 0.01 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.