A translation unit shall not #define or #undef
names lexically identical
to the identifiers listed in Table 4,
to the attribute-tokens described in [dcl.attr], or
to the identifiers expects or ensures,
except that the names likely and unlikely may be
defined as function-like macros ([cpp.replace]).
Each name declared as an object with external linkage
in a header is reserved to the implementation to designate that library
object with external linkage,177
both in namespace
and in the global namespace.
Each function signature from the C standard library declared with
is reserved to the implementation for use as
a function signature with both
or as a name of namespace scope in the global namespace.
The function signatures declared in
are always reserved, notwithstanding the restrictions imposed in subclause
4.5.1 of Amendment 1 to the C Standard for these headers.