Why are @, `, and $ not used in C?

Marcus Hall marcus at illusion.UUCP
Fri Sep 22 04:39:18 AEST 1989


In article <1596 at l.cc.purdue.edu> cik at l.cc.purdue.edu (Herman Rubin) writes:
>
>As I understand it, the reason that @ was not used instead of * for
>indirection was that @ was the UNIX line kill character.

Of course, the '#' character was the erase character and yet it was used for
the pre-processor.  I do agree that the '@' was likely avoided at least
partly for its use as a kill character, however.

There have been some difficult to figure out problems with the '#' character
I have come across.  In particular, there is a debugger that uses pre-processor
like syntax for many operations.  One of the first things that must be done
when starting a debugging session is to build a hashfile.  The directive to
do this is '#hashfile <filename>'.  Well, if you don't have the .profile file
set up the erase character, trying to type this in causes the '#' to disappear
(since it 'erases' the character before it) and thus the debugger doesn't
recognize the command and gives an error message about using a symbol before
things are set up.  Since the input looks (to a human reader) perfectly
correct and not at all like trying to do anything with a variable, it was
difficult to eventually determine what the problem was.

marcus hall



More information about the Comp.lang.c mailing list