> 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