> it must be bug with the macro preprocessor used by USS's cc comand.
> Even K&R's 1978 definition of C makes it clear that arguments 
> inside "..." strings are not to be substituted.

Two different questions. 

If you:

#define d 5
printf("%d", 3);

the d won't be replaced. That is, in preprocessor terms, a very
different question from:

#define S(d) printf("%d", d)

The person writing a macro with arguments has full control over
the names, and can choose them to match or not. This allows for:

#define debug(x) printf("x=%d\n", x)

ANSI added the stringizing operation, and then removed the
replacement inside strings. 

While not explicitely stated in K&R1, it is the normal case
for non-ANSI preprocessors.

-- glen

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to