我在源文件 test_1.c 中有一个 static
变量声明为:
static char var1 = 0;
我需要从源文件 test_2.c 访问这个变量的当前值。所以,我做了类似的事情:
在 test_1.c 中
static char var1 = 0;
volatile char var_another = var1;
在 test_2.c 中,我将变量 var_another 声明为 extern
并访问它:
extern volatile char var_another;
这是正确的做法吗?
最佳答案
static
和 extern
是互斥的。如果您想从不同的文件访问您的 static char var1
,您必须删除 static
并将其设为常规全局。您根本不需要 volatile
。
或者,您可以创建一个返回 static char var1
值的访问器函数,并在您的其他模块中使用它。
旁注:externs 和导出的函数原型(prototype)通常应该放在头文件中。
关于c - 访问静态变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3989607/