没有关键字的花括号的功能不清楚

时间:2013-08-19 10:35:53

标签: c

我在程序中找到了代码片段

   {
      Aux_U16 =  16;

   }

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

那么,如果没有任何关键字

,那么编程语言C中的卷曲括号是什么功能

3 个答案:

答案 0 :(得分:2)

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

这些大括号控制着变量scope.And因为带有自动存储的变量在超出范围时会被销毁。

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

答案 1 :(得分:0)

{}括号定义scope。这些括号必须在任何函数或方法中。 如果您在函数内部,则可以使用{}块。

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

答案 2 :(得分:0)

通常它们会被用来约束变量的范围,但是在你的示例Aux_U16 = 16;中没有定义新的变量,因此必须有一个名为Aux_16的预先存在的变量,并且超出在块结束时,它将继续以获得在块中最后设置的任何值。

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

找到这种方式的另一个常见原因是简单的剪切和粘贴。像这样的独立式街区没有任何问题,有时人们会忘记删除残羹剩饭。或者他们可能在那里有临时变量,直到他们编辑代码并且它们消失了。或者它们可能意味着它作为一个自己的注释,块内的代码属于一起。