PREV UP NEXT Using and Porting GNU CC

5.24: Dollar Signs in Identifier Names

In GNU C, you may use dollar signs in identifier names. This is because many traditional C implementations allow such identifiers.

On some machines, dollar signs are allowed in identifiers if you specify `-traditional'. On a few systems they are allowed by default, even if you do not use `-traditional'. But they are never allowed if you specify `-ansi'.

There are certain ANSI C programs (obscure, to be sure) that would compile incorrectly if dollar signs were permitted in identifiers. For example:

#define foo(a) #a
#define lose(b) foo (b)
#define test$
lose (test)