我怀疑我是否用静态声明了全局变量。
文件1.c
static int a=5;
main()
{
func();
}
可以使用 extern 在另一个 file2.c 中访问它吗?
文件2.c
func()
{
extern int a;
printf(a);
}
或者只能使用 extern 访问没有声明为 static 的全局变量?
最佳答案
不!
static
将变量的范围限制为相同的 translation unit .
static
给变量一个 Internal Linkage 并且无法在创建翻译单元之外访问此变量。
如果您需要跨不同文件访问变量,只需删除 static
关键字即可。
关于可以在另一个文件中使用 extern 访问静态声明的全局变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13227986/