Orphaned Response - (nf)

#M.CONDICT mnc at hou2g.UUCP
Tue Mar 20 01:08:45 AEST 1984


> In regard to this:
> 
> 	cat = foo ? fu = bar : mouse;
> 
> Precedence has nothing to do with it.  Precedence only matters when there
> are two possible legal parses, such as "a + b * c" which could be either
> "(a + b) * c" or "a + (b * c)" without precedence to disambiguate.
> 
> The only possible parse for the first expression is:
> 
> 	cat = foo ? (fu = bar) : mouse;
> 
> so that the "fu = bar" assignment happens before the assignment to cat
> if it happens at all.  Golly.

What's wrong with the parse:  (cat = foo) ? (fu = bar) : mouse;  ?
This evaluates an if-then-else expression containing two assignments as
side effects and then throws away the result.

Michael Condict    ...!hou2g!mnc



More information about the Comp.lang.c mailing list