// test code #define S(X) S2(X) #define S2(X) #X #define TAB " " /* 0x09 */
S(S(TAB)) // gcc -E -P OUTPUT "\"\\\"\\011\\\"\"" // expected result "\"\\\" \\\"\"" GCC # preprocessing operator converts the non-printable characters to octal. But this behavior is non standard. -- Summary: stringification BUG Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: preprocessor AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: s__nakayama at infoseek dot jp CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22042