想象一下,我们写下这段代码:
printf ("testtest"
"titiritest%s",
" test");
这是否符合ISO / IEC:9899§5.1.1.2 - 2
是3个不同的逻辑源线还是单个源?
就是这个
2。反斜杠字符(\)的每个实例后面紧跟一个换行符 删除字符,拼接物理源行以形成逻辑源行。 只有任何物理源代码行的最后反斜杠才有资格成为其中一部分 这种拼接。非空的源文件应以换行符结尾, 在任何此类之前不得立即使用反斜杠字符 拼接发生。
提到的关于形成逻辑源代码行的唯一规则是什么?
关于
5.2.4.1翻译限制
[...]
- 逻辑源行中的4095个字符
意味着每个翻译单元不应该变大4095个字符,只要我们在换行前不使用\
。我很确定,那不是他们想要说的。
那么我缺少哪些定义来查找?
答案 0 :(得分:1)
它是三条逻辑源代码行。
逻辑源行最重要,因为宏定义必须适合一个逻辑源行;我现在无法想到多行的逻辑源行的任何其他用途。要构造大型字符串文字,您可以使用由多个物理源代码行组成的逻辑源代码行(我个人觉得非常难看),或者依赖于引用字符串将被连接的事实,这样更易读和可维护。