call to revolt
Blair P. Houghton
bhoughto at hopi.intel.com
Wed Jun 26 06:07:11 AEST 1991
In article <1991Jun25.181916.26586 at zoo.toronto.edu> henry at zoo.toronto.edu (Henry Spencer) writes:
>In article <rabson.677868220 at physics.ubc.ca> rabson at physics.ubc.ca (David Rabson) writes:
>>Outlawing lvalue casts, however, borders on fascism.
>> void *thing;
>> ((int *)thing)++;
And then I suppose the next line is
((double *)thing)++;
>Remember that `void *' and `int *' need not even be the
>same size, much less have the same representation. A cast
>is a conversion operation, not a "view these bits
>differently" operation. (See K&R1 page 42.)
Much less the same location; after the cast the value may be
sitting in an accumulator, or in the phase space on the
wiring at 14.5 picoseconds antecedent to the accumulator
(Cray was a genius, kids, not just another hacker :-)),
but not necessarily anywhere near the storage for `thing'.
>Please cite K&R chapter and verse for thinking that casts are lvalues.
They certainly aren't addressable.
>>The rest of us should stop sitting back and start fighting. If enough
>>customers insist on casting lvalues and otherwising ignoring ansi's
They'll be left behind.
I've seen other standards that have had _real_ problems in
them, and nobody bothers with them any more. ANSI X3.159-1989,
on the other hand, is pretty solid, almost impervious.
--Blair
"Write when you find a bug."
More information about the Comp.std.c
mailing list