【发布时间】:2020-05-18 00:20:21
【问题描述】:
我经常听说“复合语句”这个词几乎可以互换地用于一个块,以 {} 的大括号开始和结束。我看不出一个块有什么不同。
所以我的问题是:
- “块”和“复合语句”之间有区别吗?
【问题讨论】:
标签: c++ scope terminology statements
我经常听说“复合语句”这个词几乎可以互换地用于一个块,以 {} 的大括号开始和结束。我看不出一个块有什么不同。
所以我的问题是:
【问题讨论】:
标签: c++ scope terminology statements
引用实际的 C++ 标准,ISO/IEC 14882:2017 (C++17),第 9.3 节“复合语句或块”:
9.3 复合语句或块 [stmt.block]
1 为了可以在需要一个语句的地方使用多个语句,提供了复合语句(也称为“块”)。
复合语句:{语句序列}
块和复合语句的术语在各自的含义上没有区别。
对于以“{”开头的“复合”或语句序列(甚至可能只有一个语句;语句的数量无关紧要),您可以互换使用这两个术语 - 打开大括号并终止通过 "}" - 闭合的大括号。
【讨论】:
由{ } 分隔以指示入口-出口点的代码“块”将块内定义的任何变量的提升时间限制为该块,而“复合语句”可能不会,除非它使用{ }在里面。函数定义可以解释为具有入口和出口点的“命名块”代码。
【讨论】: