|
|
1
66
|
|
|
2
50
|
|
|
3
8
…是编译器如何解释if/if/else块。然而,把你的缩进弄乱并写下:
…这使得它看起来像else与外部if语句相关联,而实际上由于c约定,它与内部if语句相关联。因此,我认为需要大括号对于解决歧义和防止相当隐蔽的bug有很大的帮助(即使在代码检查期间,这些问题也很容易忽略)。像Python这样的语言没有这个问题,因为缩进和空白很重要。 |
|
|
4
7
如果你假设C语言的设计者简单地选择使用与C++相同的语法,那么问题就变成了为什么用单个语句需要的括号在C++中尝试和捕获块。简单的答案是 Bjarne Stroustrup 认为语法更容易解释。 在 The Design and Evolution of C++ 斯特劳斯鲁写道: “Try关键字是完全冗余的,大括号也是如此,除非在Try块或处理程序中实际使用多个语句。” 他接着给出了一个不需要try关键字和的示例。然后他写道: “但是,我发现这很难解释,因为引入冗余是为了从困惑的用户中节省支持人员。” 参考文献: 斯特劳斯鲁普,比亚恩(1994)。C++的设计与实现。Addison Wesley。 |
|
|
5
1
我能想到的第一个问题是大括号创建了一个具有自己变量范围的块。
|
|
|
6
1
|
|
|
7
0
|
|
|
8
0
|
|
|
9
0
|
|
|
10
-3
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |