【问题标题】:What is the use extra curly brackets in the code? What does it do?代码中额外的大括号有什么用?它有什么作用?
【发布时间】:2019-06-15 03:40:50
【问题描述】:

这是一个 C 程序,其中来自“int k”和“for”循环的代码用大括号括起来。那些大括号的用途是什么?

   int main(){
       int k;
       {
           int k;
           for (k=0;k<10;k++);
       }
   }

【问题讨论】:

  • 没有错误。您在两个单独的范围内隐藏k。不明智,但不是错误。此外,启用任何类型的优化后,您的代码都可能被淘汰。您可能会发现How does curly braces and scope work in C? 很有用。
  • 您不会出错,因为它(几乎)是一个有效且合法的 C 程序。唯一的问题是你真的应该拥有int main(void)
  • 它不会返回错误,因为没有。 “有不需要的大括号”是什么意思?
  • 如果你在程序中没有使用头文件的任何定义,也不需要包含头文件。
  • @AjayPandya 这是我在招聘挑战中遇到的一个编码问题

标签: c


【解决方案1】:

此代码中没有“不需要的大括号”。有一个匿名块,这不是错误。其实规范是允许的。

您的变量 k 在主范围中定义,但随后在匿名块中被隐藏。

int main() {
  int k = 0;
    {
    int k = 1;
    // do more stuff with k
    }
  // k is still 0 here.
}

当我在 1000 年前编写 C 语言时,我会对团队中尝试使用此技巧的开发人员说严厉的话。

【讨论】:

    猜你喜欢
    • 2018-05-09
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2011-04-03
    • 2012-05-01
    • 1970-01-01
    相关资源
    最近更新 更多