Author: Fabien Letouzey
Date: 07:56:41 06/07/04
Go up one level in this thread
On June 07, 2004 at 10:46:28, Uri Blass wrote: >On June 07, 2004 at 10:40:09, Fabien Letouzey wrote: > >>On June 07, 2004 at 10:36:58, Vincent Diepeveen wrote: >> >>>On June 07, 2004 at 10:30:50, Fabien Letouzey wrote: >> >>>r = 1<<36; // works for good compilers not for the rest >> >>Hm, my understanding is that first "1<<36" should be calculated (so it's 0 if >>sizeof(int) <= 4) and *then* cast into r's type (oops, too late). >> >>Fabien. > >A smart compiler should understand that 1<<36 cannot mean 0 because in that case >the programmer has no reason to write it in that way. > >The only logical meaning of 1<<36 is that it is a 64 bit number(espacially when >r is defined as a 64 bit number). > >Uri Even if anybody wanted a compiler that tries to guess what the programmer wants (I certainly don't), such a transformation would not be compliant to any C norm. I think the result must be compatible with what I have indicated (semantics of affectation). The fact that you can guess what the programmer obviously wanted to do is irrelevant. Fabien.
This page took 0 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.