6 char externs and the ANSI standard

Radford Neal radford at calgary.UUCP
Wed Oct 10 07:06:32 AEST 1984


I think the standard should specify INDEFINITE length identifiers, both
internal and external. If this is thought to be too much, about 16 is
the minimum. SIX is right out.

Since C does not have a "package" mechanism, libraries of routines should
really prefix all external names to avoid conflicts with application
routines and with other packages. For example, I have a library in which
all externals are prefixed by "j_" in order to avoid conflicts. Two 
characters is about minimum for a prefix, so the proposal would leave
only FOUR significant characters in an external name, which is nowhere
near enough to be meaningful.

Six character names are downright archaic. If the standard specifies this,
the temptation to make use of a local extension to the length will be
irresistable (and rightly so). This defeats the whole purpose of the
excercise. Rewriting a brain-damaged loader is not all that difficult.

Whatever you do, the one place where indefinite-length identifiers
ABSOLUTELY MUST be allowed is in the pre-processor. As long as this is
the case, one can at least rename all one's long identifiers as short
ones with a .h file.

      Radford Neal
      Dept. of Computer Science
      University of Calgary



More information about the Comp.lang.c mailing list