2

我正在查看我下载的 Xcode 项目,并看到我不熟悉的代码语法:

在此处输入图像描述

大括号不属于方法签名或任何其他条件语句,它们只是浮动在那里。这有什么意义?纯粹出于代码隔离/可读性目的?

4

3 回答 3

6

这只是块范围;并且在 C 和 C++ 中是相同的。块内声明的任何变量在块外都不可访问。我通常在switch语句中使用它:

switch(x) {
case 1: {
    const char *s = "hi";
}
break;
case 2: {
    const char *s = "ho";
}
break;
// etc.
}

请注意,有两个变量称为s,它们都在它们自己的范围内,不会相互干扰。

于 2013-09-17T16:08:01.793 回答
2

大括号括起来的范围内的声明将被限制在该范围内,因此label, icon, 并且button在它之外将不可见。因此,它提供了通常被认为是好的位置。

于 2013-09-17T16:10:37.770 回答
1

遗留代码需要 { } 才能进行声明

在 C89 中,你不能只做 int i; 任何地方;声明仅在块的开头有效。

检查这个以获得更多解释

为什么将 C 代码块用花括号括起来?

于 2013-09-17T16:08:35.393 回答