"Sputnik" help  
Sputnik Help
Language Reference - Preprocessor - Directives Within Macro Arguments

Directives Within Macro Arguments

Occasionally it is convenient to use preprocessor directives within the arguments of a macro.

Sputnik will successfully process arbitrary directives within macro arguments in exactly the same way as it would have processed the directive were the function-like macro invocation not present.

If, within a macro invocation, that macro is redefined, then the new definition takes effect
in time for argument pre-expansion, but the original definition is still used for argument
replacement. Here is a pathological example:

#define f(x) x  x
say f ("1"
#undef f
#define f "2"
f);
// PRINTS
// 1212

which expands to

say "1212";

with the semantics described above.


Contact
Cheryl (uberfox@hotmail.com)
Homepage
http://ubersoft.org