【问题标题】:External static declaration - K&R2外部静态声明 - K&R2
【发布时间】:2018-09-02 17:16:38
【问题描述】:

我正在阅读 K&R 的“The C Programming Language”第二版和第 83 页的第 4.6 节“静态变量”K&R 状态:

静态声明,应用于外部变量或函数, 将该对象的范围限制为源文件的其余部分 编译。

K&R 是否真的犯了错误,为外部静态声明提供了错误的语义? 将静态应用于外部变量或函数不会改变范围。在我看来,上述句子与第 80 页第 4.4 节“范围规则”中的句子完全相同:

外部变量或函数的作用域从该点持续 在它被声明到正在编译的文件的末尾。

【问题讨论】:

    标签: c static language-lawyer declaration


    【解决方案1】:

    在第 227 页,K&R 描述了两种范围:词法范围和与外部链接关联的范围。因此,他们使用“范围”作为比当前 C 标准更通用的术语。它们的词法作用域就是当前 C 标准所说的“作用域”,而它们对作用域更广泛的使用就是当前 C 标准所说的链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多