有没有办法使C中的变量只能被声明它的文件访问?
我问这个是因为我记得在某个地方读到过这样做是可能的,但我真的不记得怎么做了。是可能的,还是我只是在想象?
最佳答案
使用static
关键字将提供全局变量内部链接,这意味着名称对其他翻译单元不可见。但是,请注意,这与您要求的不同之处在于:
仍然可以从同一翻译单元中包含的其他文件(通过#include
指令包含的文件)访问该名称。
如果程序中的其他翻译单元(模块)可以获得变量的地址,则仍然可以访问该变量,例如,如果有一个函数与返回指向它的指针的static
变量位于同一翻译单元中。