Zero origin for array subscripts (was Re: C official DOD language?)
Martin Weitzel
martin at mwtech.UUCP
Fri Jun 15 19:55:38 AEST 1990
In article <5344.267212F6 at puddle.fidonet.org> cspw.quagga at p0.f4.n494.z5.fidonet.org (cspw quagga) writes:
>
>
>>In article <1631 at dinl.mmc.UUCP> noren at dinl.UUCP (Charles Noren) writes:
>>> C Advantage list:
>>> 5. Array subscripts in C must start with zero, which for
>>> some is counter intuitive
>>
>
>IMHO, our experience with flexible lower bounds has been appalling, and
>not a very useful programming feature.
[refer to above article for deleted lines]
Can anybody really argue against that "some" would find something
counter intuitive :-).
My experience - after using C for years of course - is: Everything
else is counter intuitive :-), zero origin is best.
I would recommend to read the respective sections in Andrew Koenigs
book "C Traps and Pitfalls" for a good treatment of the "zero-origin"
and "asymmetric array bounds" topic. My experience with C has lead me
to similar conclusions: If the lower array bound is zero, the chance
for "off by one"-errors can be reduced with the smallest set of
coding style rules.
Well, "off by one"-errors will be made as long as people write
programs, and just two days ago I've found one more in an example
program in the curses chapter of the AT&Ts "System V Programmers
Guide". The nice thing with this error is that the author gives an
explicit rationale for subtracting one; but obviously he never tried
his formular with a simple example, otherwise he would have seen
that it is simply wrong.
--
Martin Weitzel, email: martin at mwtech.UUCP, voice: 49-(0)6151-6 56 83
More information about the Comp.lang.c
mailing list