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?