【问题标题】:Unable to use extern and static storage-class specifiers together无法同时使用外部和静态存储类说明符
【发布时间】:2011-10-13 17:43:43
【问题描述】:

C99 6.7.1 中它说

最多可以在声明中给出一个存储类说明符 声明中的说明符

我知道externstatic 都是存储类说明符,但extern 基本上向编译器声明该变量是在其他地方声明的,稍后再担心。 externstatic 对我来说是互斥的。很有可能是externstatic

为什么我们不能同时使用externstatic?除了标准简单地说没有之外,还有什么好的理由吗?

【问题讨论】:

  • 如果将“to me are”替换为“to me are not”,您的问题会更有意义。你是这个意思吗?
  • @PascalCuoq:是的,已修复。谢谢

标签: c static extern


【解决方案1】:

嗯,static 表示 Internal Linkageextern 表示 External Linkage

Internal Linkage 仅指翻译单元范围内的所有内容。

External Linkage 指的是存在于特定翻译单元之外的事物。换句话说,可以通过整个程序访问。

所以两者是互斥的。

【讨论】:

    【解决方案2】:

    所有块外的“静态”表示“内部链接”,“extern”表示外部链接。 静态外部应该是什么意思?内外部联动???

    【讨论】:

    • 笔菠萝苹果笔
    猜你喜欢
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多