关于c99,逻辑源代码行的定义是什么?

时间:2014-06-23 10:09:05

标签: c c99

想象一下,我们写下这段代码:

printf ("testtest"
    "titiritest%s",
    " test");

这是否符合ISO / IEC:9899§5.1.1.2 - 2

是3个不同的逻辑源线还是单个源?

就是这个

  

2。反斜杠字符(\)的每个实例后面紧跟一个换行符   删除字符,拼接物理源行以形成逻辑源行。   只有任何物理源代码行的最后反斜杠才有资格成为其中一部分   这种拼接。非空的源文件应以换行符结尾,   在任何此类之前不得立即使用反斜杠字符   拼接发生。

提到的关于形成逻辑源代码行的唯一规则是什么?

关于

  

5.2.4.1翻译限制

     

[...]

     

- 逻辑源行中的4095个字符

意味着每个翻译单元不应该变大4095个字符,只要我们在换行前不使用\。我很确定,那不是他们想要说的。

那么我缺少哪些定义来查找?

1 个答案:

答案 0 :(得分:1)

它是三条逻辑源代码行。

逻辑源行最重要,因为宏定义必须适合一个逻辑源行;我现在无法想到多行的逻辑源行的任何其他用途。要构造大型字符串文字,您可以使用由多个物理源代码行组成的逻辑源代码行(我个人觉得非常难看),或者依赖于引用字符串将被连接的事实,这样更易​​读和可维护。