【发布时间】:2020-04-01 07:52:56
【问题描述】:
从good answer 开始,在 C 中声明全局变量的最佳方法是使用 extern 在 1 个标头中声明变量,并仅在 1 个源中定义它。然后在想要使用全局变量的其他源文件中引用头文件。
所以我这样做了,在我的标题global.h:
extern Boolean transmitting;
在我的 main.c 中,我在 main 函数中定义了它:
int main() {
Boolean transmitting = FALSE;
...
}
但是,我在主 "unused variable 'transmitting' [-Wunused-variable]" 中的变量上收到警告,告诉我这仅在主范围内定义,所以其他源文件不能使用它?这是否意味着我需要在main() 之外定义它们?
以前,我没有使用 extern 关键字在我的 header 中声明,而是在我的 main 中使用了这样的变量:
int main() {
transmitting = FALSE;
...
}
一切正常,其他源文件可以通过包含此标头访问该变量。但是我想使用正确的方法来声明全局变量。我哪里做错了?
【问题讨论】:
-
全局变量需要在任何函数之外定义。您在函数中定义的任何东西(甚至是主函数)都是局部变量,并且永远无法从该函数外部看到
标签: c