Macro substitution in character literals
Michael Jones
mbj at natasha.mach.cs.cmu.edu
Sat Dec 8 05:35:51 AEST 1990
In article <11323 at pt.cs.cmu.edu>, mbj at natasha.mach.cs.cmu.edu (Michael Jones) writes:
| How can I write a macro which produces a character literal containing a macro
| parameter? I'd like to be able to write something like:
| #define chr(c) 'c' /* Yes, this is incorrect */
| which for
| chr(z)
| produces
| 'z'
|
| To do this for strings, I know I can write:
|
| #define str(s) # s
|
| Is there an equivalent for character literals?
Oh, I should add that I'd like the result to be potentially usable as a value
in compile-time initialization expressions. Thus, I don't think the
definition:
#define chr(c) (# s)[0]
will do in contexts such as:
static int foo = chr(z);
More information about the Comp.std.c
mailing list