Sajish V <[EMAIL PROTECTED]> writes: > I think that C does not allow special characters ( '~' '!' '@' '#' '$' '%' > '^' '&' '*' ) in variable and function names. My knowledge is purely based on > the books that I have been reading to learn C. > > To verify this when I tried to compile a C program using GCC with '$' in > variable names and function names I found that GCC does not complain. No > errors or warnings. > > I used the basic command with no option to compile. > > bash$ gcc <filename> > > Can someone please let me know why GCC allows '$' character in variable and > function names?
The C99 standard permits identifiers to contain implementation defined characters. See section 6.4.2.1. The standard does this to permit implementations to support identifiers written in languages which require characters which do not appear in English, such as 'ñ' or 'ö'. gcc permits '$' as an implementation defined character. It does this mainly for historical reasons. Ian