【问题标题】:Difference between function and block scope in C? [duplicate]C中函数和块范围之间的区别? [复制]
【发布时间】:2015-02-18 01:55:18
【问题描述】:

C 中的块作用域和函数作用域有什么区别?有人告诉我,在大括号内声明的任何变量都算作在块范围内,但是当我们声明一个函数时,它以大括号开始和结束。我很困惑。

【问题讨论】:

  • 你不是,希望有人能给你一个完整的答案,我不知道,因为在我的国家已经很晚了。
  • 问题是什么?
  • @Lashane:这个问题已经很清楚了。 C 标准定义了术语“函数范围”和“块范围”;见N15706.2.1。
  • @KeithThompson 好的,所以问题是“我被 google 禁止了,我不想读书,但我喜欢在 SO 上发布问题”?

标签: c scope


【解决方案1】:

在 C 语言中,函数作用域是描述标签作用域的正式术语。标签在整个函数中都是可见的,无论它在函数中的哪个位置声明。标签是唯一具有这种不寻常属性的实体,因此需要为它们提供特殊的范围。没有其他东西可以有函数范围

变量不能有函数作用域。所有在本地声明的变量总是具有块作用域。包裹整个函数的最外面的一对{ ... }也是一个块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2010-09-30
    • 2015-10-09
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 2020-05-18
    相关资源
    最近更新 更多