c - 访问静态变量值

标签 c

我在源文件 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;

这是正确的做法吗?

最佳答案

staticextern 是互斥的。如果您想从不同的文件访问您的 static char var1,您必须删除 static 并将其设为常规全局。您根本不需要 volatile

或者,您可以创建一个返回 static char var1 值的访问器函数,并在您的其他模块中使用它。

旁注:externs 和导出的函数原型(prototype)通常应该放在头文件中。

关于c - 访问静态变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3989607/

相关文章:

c - 为什么要传递一个指向全局结构的指针?

c - 我收到警告 "floating point overflow "

java - 为什么在 Windows 上调用 MinGW 编译的函数(不加载库)时出现 UnsatisfiedLinkError?

c - 静态和动态链接同一个库

c - 编译C代码的脚本

c - 在 C 的参数中使用带有 shell 元字符的 execlp 系统调用

c - 温索克 : UDP recvfrom() not filling in the same IP address that was used to send data

c++ - 为什么 NULL/0 是对象的非法内存位置?

c - 函数返回它自己

c - 为什么我的 C 程序崩溃?