Defining or declaring identifiers with reserved names may lead to undefined behavior. Therefore, reserved names should not be used as
identifiers.
This rule applies to:
  -  
defined  
  -  identifiers that contain two consecutive underscores 
 
  -  identifiers that begin with an underscore, followed by an uppercase letter 
 
  -  identifiers in the global namespace that start with an underscore