------- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-09 18:32 ------- The relevant part of the standard (C99: 6.10.3.2P2) Otherwise, the original spelling of each preprocessing token in the argument is retained in the character string literal, except for special handling for producing the spelling of string literals and character constants: a\character is inserted before each" and \character of a character constant or string literal (including the delimiting " characters), except that it is implementation-defined whether a\character is inserted before the\character beginning a universal character name. If the replacement that results is not a valid character string literal, the behavior is undefined. The character string literal corresponding to an empty argument is ""
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22042