I think you missed the point that code makes. Whether or not a constant define'd via preprocessing is replaced inside a quoted string depends on the quoting mechanism used. It isn't replaced with actual quotes ("" or '') but it is with the generic quote operators¹ q() and qq().
So, change how you quote your literals and you might end up changing the literals themselves. I don't like things that change unexpectedly like that.
1. This is, of course, because it is a C preprocessor and not a Perl preprocessor.
-sauoq
"My two cents aren't worth a dime.";