来自C编程语言,由KRC撰写
给定定义
#define tempfile(dir) #dir "%s"
宏调用tempfile(/ usr / tmp)产生
"/usr/tmp" "%s"
随后会被连接成一个字符串。
最后两个字符串的串联遵循哪条规则?
是预处理中的宏规则,还是编译中C中的字符串的规则?
答案 0 :(得分:3)
这是根据翻译的其中一个阶段发生的。
引用C11
,章节§5.1.1.2/ p1.4和p1.6,(根据订单)
执行预处理指令,扩展宏调用,以及 _Pragma一元运算符表达式被执行。 [...]
和
连接相邻的字符串文字标记。