...only text replacement, that will become an expression containing something multiplied by 256.
However the preprocessor will expand until it cannot expand any further:
#define F(A) (A * A)
#define G F
then
G(2);
a = G;
will become
F(2 * 2);
A = F;
which, like that, isn't gonig to compile, but the preprocessor doesn't know that.
It will however avoid choking on something like:
#define A B
#define B A
The preprocessor is a strange strange thing...
(see also the examples in this nice document:
n869.pdf.gz
around page 155)
--
Tars Tarkas, Holder of Opinions and Views, Sayer of Sayings, Humblest of the Humble, most Knowledgable Person. |