When the compiler is called with cc, c11, c89 or CC, preprocessor macros and predicates are predefined, depending on the command and some options.
For a few macros the value is fixed. It cannot be changed, neither on the command line nor in the source (via #define or #undef). These macros are: __cplusplus, __STDC__, __STDC_VERSION__ and __SNI__STDCplusplus.
Predefined preprocessor macros (defines)
_BOOL | In the language modes C++ V3, C++ 2017 and C++ 2020 with the option -K bool, which is the default | 
  | Always set  | 
  | In all C++ language modes: == 1 in Cfront C++ mode  | 
  | In all C++ language modes  | 
  | In Cfront C++ mode  | 
  | |
In the modes C++ V3, C++ 2017 and C++ 2020, if implicit inclusion has been disabled with the option   | |
  | Always set  | 
  | Always set  | 
  | Option   | 
  | Always set  | 
  | Always set  | 
  | In mode C++ 2020: the compiler will set it to the value   | 
  | |
Option   | |
  | |
Option   | |
  | Option   | 
  | |
== 1 with the option   | |
  | Always set  | 
  | Always set  | 
  | Option   | 
  | Option   | 
  | Always set  | 
  | In all C modes and in C++ V2 mode  | 
  | Never set (reserved for compilation in BS2000 (SDF))  | 
  | Always set  | 
  | Always set  | 
  | in all C++ language modes: == 0 in extended language modes (  | 
  | Never set (reserved for compilation in BS2000 (SDF))  | 
  | Always set  | 
  | Always set: == 0 in extended language modes (  | 
  | Always set  | 
  | Always set  | 
  | Always set  | 
  | Always set  | 
  | |
Always set == 8U  | |
  | Always set  | 
  | Always set  | 
  | Undefined in K&R C mode == 199409L in language modes C89, C++ V2, C++ V3 == 201112L in language modes C11, C++ 2017 and C++ 2020  | 
  | Undefined in K&R C mode == 199409L in language mode C89 and in all C++ language modes == 201112L in language mode C11  | 
  | in strict language modes (  | 
  | Option   | 
  | Option   | 
  | If called with   | 
Predefined preprocessor predicates (#assert)
  | Always set  | 
  | With /390 code generation  | 
  | With /390 code generation  | 
  | Always set  |