【问题标题】:Difference between a compound statement and a block in C++?C ++中复合语句和块之间的区别?
【发布时间】:2020-05-18 00:20:21
【问题描述】:

我经常听说“复合语句”这个词几乎可以互换地用于一个块,以 {} 的大括号开始和结束。我看不出一个块有什么不同。

所以我的问题是:

  • “块”和“复合语句”之间有区别吗?

【问题讨论】:

    标签: c++ scope terminology statements


    【解决方案1】:

    引用实际的 C++ 标准,ISO/IEC 14882:2017 (C++17),第 9.3 节“复合语句或块”

    9.3 复合语句或块 [stmt.block]

    1 为了可以在需要一个语句的地方使用多个语句,提供了复合语句(也称为“块”)

    复合语句:{语句序列}

    块和复合语句的术语在各自的含义上没有区别。

    对于以“{”开头的“复合”或语句序列(甚至可能只有一个语句;语句的数量无关紧要),您可以互换使用这两个术语 - 打开大括号并终止通过 "}" - 闭合的大括号。

    【讨论】:

      【解决方案2】:

      { } 分隔以指示入口-出口点的代码“块”将块内定义的任何变量的提升时间限制为该块,而“复合语句”可能不会,除非它使用{ }在里面。函数定义可以解释为具有入口和出口点的“命名块”代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-14
        • 1970-01-01
        相关资源
        最近更新 更多