In the C programming language, identifiers beginning with an underscore followed by an uppercase letter or another underscore, as well as identifiers beginning with an underscore in the global scope, are reserved for use by the implementation, standard libraries, and compiler vendors to prevent naming collisions.