Predefined macros can be used to conditionally compile code for specific compilers, specific versions of compilers, specific environments, and specific language features.
Predefined macros fall into several categories.