【问题标题】:LOCAL and GLOBAL Functions in CC 语言中的 LOCAL 和 GLOBAL 函数
【发布时间】:2016-11-02 17:01:40
【问题描述】:

我正在研究一些非常古老的 C 代码,并且遇到了以下问题:

GLOBAL void Input_Channels()
{
    // removed
}

也有很多类似的,但是是本地的。

这是什么?我在任何地方都看不到任何关于 LOCAL / GLOBAL 函数的信息。

【问题讨论】:

  • 可能是某种宏(可能只是为了帮助在快速搜索中定位函数)。您是否在整个项目中搜索过定义?
  • 真的很老 几岁了?什么编译器?平台?
  • 嗯,不是很老。从2000年开始,16岁。事实证明这是一个宏,我忽略了这种可能性。在头文件中找到它。
  • 这就是为什么重新发明 C 语言并用您自己的“秘密宏语言”替换它是一个非常糟糕的主意的原因。没有人知道代码的作用。合格的猜测:GLOBAL 是空宏或extern,LOCAL 是static
  • 你是 100% 正确的,GLOBAL 是空的,LOCAL 是静态的。你能帮我理解为什么吗?我无法弄清楚这背后的逻辑。 @Lundin

标签: c


【解决方案1】:

我最好的猜测是,在某处为此定义了宏,以帮助您了解函数是否应该被视为公共或私有(使用面向对象的术语) - 或者该函数是否被导出。

在 LOCAL 可以将函数标记为静态的地方,GLOBAL 无能为力。

我以前没有见过,所以它可能是编译器供应商使用的语法的一个模糊补充。你用的是哪个编译器?

【讨论】:

  • 谢谢,这是正确的。这是一个宏。让我很困惑的是,我以前从未在函数前面使用过宏,这让我完全感到惊讶。
  • @MHartley 不客气 :) 我在函数参数(尤其是指针值)上看到了类似的东西:变量前面的 INPUT 和 OUTPUT,以指示函数是读取还是写入参数列表中的变量。
猜你喜欢
  • 2013-01-23
  • 2018-08-12
  • 2011-10-12
  • 2016-08-19
  • 2015-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多