jcw@cvl.UUCP (07/02/83)
One thing I found out about the Computer Innovations C compiler
preprocessor phase when trying to port some of my code that worked
on a UN*X C compiler was an inconsistancy in function macros.
When you say
#define func(x,y) text ...
all occurences of the parameters of the strings "x" and "y" in the
text are substituted for, not just where identifiers appear. For
example,
#define debug(f) fprintf(stderr,"%s\n",f)
debug("Hello");
would become:
"Hello"print"Hello"(stderr,"%s\n","Hello");
which can really screw things up. My advice is to use long names for
the formal parameters in a #define, which is unfortunately the opposite
of what people are inclined to use.
-Jay Weber
{...!seismo!rlgvax!cvl!jcw}