您可以使用静态关键字隐藏给定文件外部的结构中的变量吗? 类似地,我们可以使用static关键字从给定文件外部隐藏全局变量吗? 如果是这样,请让我知道如何。 提前谢谢......
答案 0 :(得分:4)
使用opaque数据类型,其中类型在标头中声明,但结构在实现中定义。这意味着包含头的任何代码都可以将指针传递给类型,但只有实现可以修改和处理结构包含的数据。
典型的例子是来自FILE
的{{1}}。
答案 1 :(得分:1)
您可以使用static关键字从文件外部隐藏全局变量,但不能隐藏结构的子集或单个变量。
答案 2 :(得分:1)
通过静态键盘,您通常会将其设为私有功能。如果将它用于与函数相关的全局变量或局部变量,则会获得不可重入的代码。
我强烈建议您避免这种情况,因为在多线程环境中会给您带来麻烦。您也可能对多线程编程不感兴趣,但是您不知道将来需要什么!
关于你的具体问题,我完全赞同James Morris关于不透明指针的建议。