我一直在使用Groovy,它似乎能够处理类似的C / C ++语法而不使用分号。我的问题是,为什么C / C ++需要分号?它是"它们是如何设计它的,或者是否存在使用分号可以预防的语言歧义?如果是后者,请举例说明这种含糊之处。
答案 0 :(得分:2)
这样没有“理由”。这就是语言结构的编写方式。语法包括作者提到的;
的用法。
引用C11
中的相关段落,章节§5.1.1.2,翻译阶段
- 分隔标记的空白字符不再重要。每 预处理令牌转换为令牌。由此产生的代币是 语法和语义分析并翻译为翻译单位。