如何从用C另一个文件访问一个静态变量? 由于静态变量具有文件范围,我认为我们无法在文件外访问它。但我仍然觉得可能有一些技巧或办法可以做到这一点。
回答
在声明中使用extern关键字指定该变量来自另一个文件(外部链接)。将静态关键字放在原始定义中。
外部与内部连接的东西被解释为in this article。
嗯。什么?一个既有内部链接又有外部链接的变量? –
我澄清了声明与定义部分。 – Thorsten79
现在,您的答案在技术上是正确的,但不幸的是,并没有回答这个问题。这个问题本身并不是那么好。 –
你只能间接地做到这一点,例如,如果包含静态变量的文件范围内的函数传递给它一个指针。
我不认为有一个简单的方法。如果你可以用静态变量更改文件,你可以这样做:
static int hiddenVar; // The static var you want to get at
// A new function you write
int * getHiddenVar() {
return &hiddenVar;
}
不过,当然,如果你可以改变文件,你刚落static关键字。
此外,我怀疑这有帮助,但在FreeBSD中编写内核模块时,我不得不这样做。我用了一个技巧来调用内核的链接器函数来查找静态函数的地址。我怀疑你可以在普通的C程序中做到这一点。
- 1. 试图访问另一个静态变量的静态变量
- 2. 从java中的另一个类访问静态变量
- 3. 从一个类访问静态变量到另一个类
- 4. 从另一个文件访问变量
- 5. 如何访问另一个程序的静态变量
- 6. 如何从ios中的另一个nib文件访问变量
- 7. C++如何访问另一个类中的私有静态变量
- 8. 从C++中的静态方法访问非静态类变量
- 9. 从另一个文件在C++中访问extern变量
- 10. 静态变量不能从另一个类访问
- 11. 从另一个类访问非静态变量
- 12. 从另一个类访问静态变量
- 13. 从另一个SWF文件访问SWF文件中的变量
- 14. 目标C从另一个文件访问的全局变量
- 15. PHP:引用静态变量中的另一个静态变量
- 16. 在C++中访问静态类变量?
- 17. 如何从另一个php文件访问变量
- 18. 从另一个组件访问变量
- 19. 从另一个访问组件变量
- 20. 从c中的另一个文件更新静态全局变量
- 21. 访问另一个类的静态变量
- 22. 无法访问另一个包类的静态变量
- 23. objective-c:如何从另一个类访问变量或数组?
- 24. 从另一个类的访问变量
- 25. 从一个组件到另一个组件的访问变量
- 26. 如何访问另一个类的静态成员函数中的私有静态变量?
- 27. 我可以通过指针从另一个文件访问文件的静态变量吗?
- 28. 访问静态变量主
- 29. 静态变量访问
- 30. 如何用另一个静态变量初始化静态变量?
你为什么想这么做? – 2010-02-09 12:20:58
什么@尼尔说,这是一个重复:http://stackoverflow.com/questions/1973162 –