1

我在一个程序中发现代码片段

   {
      Aux_U16 =  16;

   }

所以问题是:为什么会有这个大括号。没有像 if 或 switch 这样的关键字可见。

那么在编程语言C中什么函数有花括号,如果它们是在没有任何关键字的情况下编写的

4

3 回答 3

2

它有时很好,因为它为您提供了一个新的范围,您可以在其中更“干净地”声明新的(自动)变量。

这些大括号控制变量范围。并且由于具有自动存储功能的变量在超出范围时会被销毁。

它只是隔离实现特定(子)目的的代码块。很少有单个语句达到我想要的计算效果;通常需要几个。

于 2013-08-19T10:47:09.040 回答
0

通常它们用于限制变量的范围,但在您的示例中,Aux_U16 = 16;没有定义新变量,因此必须有一个名为 的预先存在的变量Aux_16,并且超出块的末尾它将继续具有它的任何值上次设置为块内。

例如,限制范围允许您创建一个名为 的新变量i,而无需考虑i该块之外的任何状态 - 不幸的是,正如您给出的示例中一样,编译器不会注意到定义之间的差异和赋值,你最终可能会破坏一个你认为你已经保护的变量。

以这种方式查找内容的另一个常见原因是简单的剪切和粘贴。像这样的独立积木并没有什么问题,有时人们只是忘记删除剩菜。或者他们可能在那里有临时变量,直到他们编辑了代码然后他们离开了。或者他们可能将其作为对自己的说明,即块内的代码属于一起。

于 2013-08-19T11:02:35.817 回答
0

{}括号定义范围。这些括号必须在任何函数或方法内。如果你在一个函数内部,你可以有{}块。

注意:-如果您只是添加它们并在没有任何范围的情况下进行编译,它将给您编译时错误。

于 2013-08-19T10:39:52.710 回答