【发布时间】:2017-10-16 20:54:07
【问题描述】:
我知道可以将定义的宏与这样的字符串文字连接起来
#define R "car"
const char * s1 = "foo"R; //s1="foocar"
但是当我尝试将R 放在这样的两个字符串文字之间时
#define R "car"
const char * s1 = "foo"R"bar"; //compile-time error
我收到编译时错误error: stray 'R' in program。上面的第二个例子如何才能实现s1 = "foocarbar"?
【问题讨论】:
-
它似乎工作:ideone.com/7KMByV 你能添加一些关于编译器和操作系统的信息来重现错误吗?
-
您是否也收到“错误:原始字符串分隔符中的换行符无效”?
标签: c macros string-literals