A book [1] that I am reading says this:
One of the most interesting developments in programming languages has been the creation of extensible languages—languages whose syntax and semantics can be changed within a program. One of the earliest and most commonly proposed schemes for language extension is the macro definition.
How does a C macro extend the syntax and semantics of the C programming language?
For instance, this macro:
#define BUFSIZE 100
certainly doesn't seem to be extending the syntax and semantics of the C programming language.
Would you give an example (along with an explanation) of a macro that extends the syntax and semantics of the C programming language, please?
[1] The Theory of Parsing, Translation, and Compiling, Volume 1 Parsing by Aho and Ullman, page 58.