c - 使用 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;
...
}
一切正常,其他源文件可以通过包含此标头访问该变量。但是我想使用正确的方法来声明全局变量。我哪里做错了?
解决方案
您必须在全局范围内声明变量,即在 main() 函数之外。
推荐阅读
- parsing - 从 .txt 文件中解析文本
- mongodb - 使用 mongodb 和 monstache 进行慢速弹性搜索索引
- angularjs - 尝试创建服务来构建我的 NgTable
- ruby - 删除方法单一!数组中的元素按谓词并返回已删除
- javascript - Vue Nuxt Axios:带代理的跨域 POST
- javascript - 从 android 调用 Native 模块并将事件从该模块发送到 React Native
- html - 使垂直对齐的父块随着孩子的成长而向右成长的最简单方法是什么?
- android - 将字符串从 DataBinding 传递到自定义视图 xml 属性
- watson-studio - 为什么在 watson Studio 中您没有部署模型网络或上传批次的选项?
- flask - Telegram 对 webhook Flask 应用程序的更新的结构是什么?