Path: utzoo!attcan!uunet!cs.utexas.edu!tut.cis.ohio-state.edu!brutus.cs.uiuc.edu!psuvax1!rutgers!att!mcdchg!illusion!marcus From: marcus@illusion.UUCP (Marcus Hall) Newsgroups: comp.lang.c Subject: Re: Why are @, `, and $ not used in C? Keywords: This is a historic question Message-ID: <408@illusion.UUCP> Date: 21 Sep 89 18:39:18 GMT References: <509.nlhp3@oracle.nl> <19211@gatech.edu> <3068@ur-cc.UUCP> <1596@l.cc.purdue.edu> Reply-To: marcus@illusion.UUCP (Marcus Hall) Organization: Magic Numbers Software, Bloomingdale, IL Lines: 22 In article <1596@l.cc.purdue.edu> cik@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 '. 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