lvalues

Guy Harris guy%gorodish at Sun.COM
Thu Jan 22 05:27:49 AEST 1987


> >The expression designating a bit-field cannot be evaluated to yield a
> >context-free representable "value" that can be passed around, stored &c.
> >Hence there is no lvalue of a bit-field.
> 
> This is true of most machines;

This is neither true nor false of any machine.  Machines aren't being
discussed here; C compilers are.  You can have a C compiler that doesn't
support bit-field pointers on a machine that supports bit addressing; you
can have a C compiler that supports bit-field pointers on a machine that
doesn't (this would, of course, be an extended version of C, and you might
have to be careful not to make these extensions in such a way as to render
the implementation nonconforming).

There is no law that requires that implementations on machines that support
bit addressing support bit-field pointers, nor that implementations on
machines that don't support bit addressing not support bit-field pointers.
(One might just as well argue that you can't have "char *" on a
word-addressible machine.)  Consider all the PL/I implementations on
machines not supporting bit addressing.



More information about the Comp.lang.c mailing list