Yes, when the underscore is followed by another underscore or an uppercase letter (i.e. for preprocessor #defines or macros), or if the identifier is in the global namespace (§17.6.4.3.2):
Certain sets of names and function signatures are always reserved to the implementation:
— Each name that contains a double underscore _ _ or begins with an underscore followed by an uppercase letter (2.12) is reserved to the implementation for any use.
— Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace.
Note that the first point means that if two underscores appear anywhere in the identifier, even in the middle or at the end, the name is reserved. Also, I would add (§17.6.4.3.5, emphasis mine):
Literal suffix identifiers that do not start with an underscore are reserved for future standardization.