【发布时间】:2015-01-22 12:05:25
【问题描述】:
我正在查看ArduCopter 代码。我看到ArcuCopter.pde 中声明为静态的变量很少。然而,这些变量在其他 .pde 文件中被调用。例如对象 g 被定义为 here 为静态的,它在其他 Attitude.pde 文件中多次使用,如 this 示例。
据我所知,静态成员的范围仅限于一个文件,不能在其他文件中调用。所以我的问题是如何做到这一点?有什么方法可以直接访问其他文件中定义的静态成员吗?
【问题讨论】:
-
请在您的问题中添加最少的相关代码,不要指望人们点击每个链接只是为了回答您。
-
@Gyapti 我没有代码,因为我试图从具体实现中理解这个概念,因此我必须提供足够的外部参考来提出我的查询。因此,如果您想了解我的查询,则必须通过链接。
-
@iharob 当我尝试从其他文件中调用静态变量时,编译器给我错误提示无法识别变量。
-
是的,我知道 extern 工作。但我想知道他们如何使用静态声明访问 ArduCopter 代码中其他文件中的变量
-
@iharob
You're confusing scope with lifetime. Static variables have a lifetime equal to the program's lifetime, but they still follow scoping rules based on where they are declared.来自here