Go forward to Character Escapes.
Go backward to C++ Comments.
Go up to C Extensions.

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)