Answer
A macro is a preprocessing replacement defined with `#define`. • Object-like macros replace a name, while function-like macros accept preprocessing arguments. • Arguments can be evaluated more than once by a poorly designed macro. • Parenthesize parameters and the full replacement expression when writing expression macros.
💡 C Example
#define SQUARE(value) ((value) * (value))
int result = SQUARE(4);
⚡ Quick Revision
Macros perform token replacement before C translation and need careful parentheses.