首页 > 解决方案 > 使用 extern 在 C 中声明全局变量

问题描述

从这个好的答案中,在 C 中声明全局变量的最佳方法是在 1 个标头中使用 声明变量extern,并仅在 1 个源中定义它。然后在想要使用全局变量的其他源文件中引用头文件。

所以我这样做了,在我的标题中global.h

extern Boolean transmitting;

在 mymain.c中,我在 main 函数中定义了它:

int main() {
    Boolean transmitting = FALSE;
...
}

但是,我在 main 中的变量上收到警告"unused variable 'transmitting' [-Wunused-variable]",告诉我这仅在 main 范围内定义,所以其他源文件不能使用它?这是否意味着我需要在外面定义它们main()

Previoulsy,我没有使用 extern 关键字在我的标题中声明,而是在我的 main 中使用了变量,如下所示:

int main() {
    transmitting = FALSE;
...
}

一切正常,其他源文件可以通过包含此标头访问该变量。但是我想使用正确的方法来声明全局变量。我哪里做错了?

标签: c

解决方案


您必须在全局范围内声明变量,即在 main() 函数之外。


推荐阅读