>>443 ttp://www-ccs.ucsd.edu/c/lib_over.html#reserved%20names

C Library Conventions
[...]
Names that begin with two underscores, such as __STDIO, and names that
begin with an underscore followed by an upper case letter, such as
_Entry, can be used as macro names, whether or not a translation unit
explicitly includes any standard headers. Names that begin with an
underscore can be defined with external linkage. Avoid writing such
names in a program that you wish to keep maximally portable.