在C

时间:2016-08-16 13:00:51

标签: c

来自C编程语言,由KRC撰写

  

给定定义

#define tempfile(dir)    #dir "%s" 
     

宏调用tempfile(/ usr / tmp)产生

"/usr/tmp" "%s" 
     

随后会被连接成一个字符串。

最后两个字符串的串联遵循哪条规则?

是预处理中的宏规则,还是编译中C中的字符串的规则?

1 个答案:

答案 0 :(得分:3)

这是根据翻译的其中一个阶段发生的。

引用C11,章节§5.1.1.2/ p1.4和p1.6,(根据订单

  

执行预处理指令,扩展宏调用,以及   _Pragma一元运算符表达式被执行。 [...]

  

连接相邻的字符串文字标记。