C subscripts
Henry Spencer
henry at utzoo.UUCP
Sun Oct 28 09:29:37 AEST 1984
> Who else out there thinks that
> some_array_name[more][long][names]
> is actually a good way to do things?
An equally-appropriate question is "who out there thinks this is a
sufficiently severe problem to be worth fixing?".
> Just as we need nested comments, because after all other "great languages"
> do, I propose that C support "normal" subscripting.
I suggest that C needs neither.
> Mathematicians have been around longer than C...
So they have, but that doesn't mean we should change C so that the
multiplication operator is implicit, like it is in math. "They do it
that way in math" is not really a very relevant argument; we do lots of
things differently in programming languages. Whether this is a good
thing is an interesting question, which I don't suggest debating here,
but we have ample precedent for being different.
> ... in the name of compatability, which is what the ANSI standard
> is all about anyway, the compiler SHOULD ...
Compatibility *with* *what*? Surely not with older C implementations,
which is the major compabitility concern of the ANSI standard; I'm not
aware of any C implementation that has done this.
> Now, BEFROE the flames start I KNOW the comma operator exists.
> This is not overloading because subscripts are expressions, not statements.
> So don't start quoting K&R pg 192 to me.
"expressions, not statements"? Surely you are confused; a C "assignment
statement" is nothing but an expression with a semicolon after it. The
distinction you're after, I think, is the one made in things like function
parameter lists: commas are not comma operators unless within parentheses
or other bracketing. The expression "x[2,3]" has a perfectly legitimate
(albeit peculiar and unlikely) meaning in C right now, and you are changing
it. It would not surprise me if somebody, somewhere, had found a use for
the current behavior; to judge by some of the furor over cleaning up the
preprocessor, there is no feature of C so slimy that someone won't find
a real use for it. Remember that "not breaking existing correct programs"
is the specific "compatibility" objective of the ANSI C committee; you
are proposing a violation of it, for reasons that seem thin.
> p.s. Does anyone know of a good preprocessor macro to convert
> [a,b,c,...n] into [a][b][c][...][n] for n>1 ?
Sounds like you could do it with sed, if things weren't too complicated.
--
Henry Spencer @ U of Toronto Zoology
{allegra,ihnp4,linus,decvax}!utzoo!henry
More information about the Comp.lang.c
mailing list