Preprocessor
Constants with #define
Macros with parameters
Conditional compilation
Include guards
The # and ## operators
Predefined macros
Variadic macros
Compile-time checks (static_assert)