Reserved namespace and illegal names

This is a discussion on Reserved namespace and illegal names within the C Programming forums, part of the General Programming Boards category; I've googled intensively, and I just can't any comprehensive online resource for a list of illegal names and other naming ...

I'm pretty sure they aren't illegal, and I doubt they're actually reserved. If I'm wrong, I'd like somebody to shove a quote in my face proving my ignorance and complete ineptness of programming.

I think using those naming conventions yourself would be sort of handy, as if you're extending those groups of functions (assuming they actually perform string or memory related tasks). The only thing I've consciously stayed away from was the double under score for the beginning of variable names.

7.1.3 Reserved identifiers
1 Each header declares or defines all identifiers listed in its associated subclause, and optionally declares or defines identifiers listed in its associated future library directions subclause and identifiers which are always reserved either for anyuse or for use as file scope identifiers.
—All identifiers that begin with an underscore and either an uppercase letter or another underscore are always reserved for anyuse.
—All identifiers that begin with an underscore are always reserved for use as identifiers with file scope in both the ordinary and tag name spaces.
—Each macro name in anyof the following subclauses (including the future library directions) is reserved for use as specified if anyofits associated headers is included; unless explicitly stated otherwise (see 7.1.4).
—All identifiers with external linkage in anyofthe following subclauses (including the future library directions) are always reserved for use as identifiers with external linkage. 142)
—Each identifier with file scope listed in anyofthe following subclauses (including the future library directions) is reserved for use as macro and as an identifier with file scope in the same name space if anyofits associated headers is included.

2 No other identifiers are reserved. If the program declares or defines an identifier in a context in which it is reserved (other than as allowed by 7.1.4), or defines a reserved identifier as a macro name, the behavior is undefined.

3 If the program removes(with#undef)any macro definition of an identifier in the first group listed above,the behavior is undefined.

The following names are grouped under individual headers for convenience. All external names described below are reserved no matter what headers are included by the program.

4.13.1 Errors <errno.h>
Macros that begin with E and a digit or E and an upper-case letter (followed by any combination of digits, letters and underscore) may be added to the declarations in the <errno.h> header.

4.13.2 Character handling <ctype.h>
Function names that begin with either is or to , and a lower-case letter (followed by any combination of digits, letters and underscore) may be added to the declarations in the <ctype.h> header.

4.13.3 Localization <locale.h>
Macros that begin with LC_ and an upper-case letter (followed by any combination of digits, letters and underscore) may be added to the definitions in the <locale.h> header.

4.13.4 Mathematics <math.h>
The names of all existing functions declared in the <math.h> header, suffixed with f or l , are reserved respectively for corresponding functions with float and long double arguments and return values.

4.13.5 Signal handling <signal.h>
Macros that begin with either SIG and an upper-case letter or SIG_ and an upper-case letter (followed by any combination of digits, letters and underscore) may be added to the definitions in the <signal.h> header.

4.13.6 Input/output <stdio.h>
Lower-case letters may be added to the conversion specifiers in fprintf and fscanf . Other characters may be used in extensions.

4.13.7 General utilities <stdlib.h>
Function names that begin with str and a lower-case letter (followed by any combination of digits, letters and underscore) may be added to the declarations in the <stdlib.h> header.

4.13.8 String handling <string.h>Function names that begin with str , mem , or wcs and a lower-case letter (followed by any combination of digits, letters and underscore) may be added to the declarations in the <string.h> header.