? : operator in lvalue
Ephraim Vishniac
vishniac at wanginst.UUCP
Thu Apr 18 04:37:51 AEST 1985
> Is it considered kosher to use the ``? :'' operator
> in computing an lvalue, as in
>
> int a, b, c;
>
> *(a ? &b : &c) = 47;
>
> This is certainly legal C, but I never recall
> seeing it used in any code I have looked at.
Legality may not be enough: some C compilers will choke on it anyway.
I recently discovered that the Mark Williams C compiler (for 8086/8088)
refuses to accept:
int a[3], b;
a[ b ? 1 : 2] = 47;
It complains that the stuff on the left of the assignment is not an lvalue.
--
Ephraim Vishniac
[apollo, bbncca, cadmus, decvax, harvard, linus, masscomp]!wanginst!vishniac
vishniac%Wang-Inst at Csnet-Relay
More information about the Comp.lang.c
mailing list