【问题标题】:Regarding to c99, What is the definition of a logical source line?关于c99,逻辑源代码行的定义是什么?
【发布时间】:2014-06-23 10:09:05
【问题描述】:

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

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

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

是 3 个不同的逻辑源代码行还是一个?

这是吗

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

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

关于

5.2.4.1 翻译限制

[...]

— 逻辑源代码行中的 4095 个字符

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

那么我要查找的定义部分在哪里?

【问题讨论】:

    标签: c c99


    【解决方案1】:

    这是三个逻辑源代码行。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多