【问题标题】:How to access variable across files in C? [duplicate]如何在C中跨文件访问变量? [复制]
【发布时间】:2013-05-15 05:07:28
【问题描述】:

我有一个file1.cfile2.c。如果我在file1.c 中定义一个变量,并为其赋值,我如何从file2.c 访问这个变量?

我应该如何在file1.c 中声明变量以及如何从file2.c 中检索值?

【问题讨论】:

标签: c variables scope


【解决方案1】:

交流:

int a;

啊哈:

extern int a;

就是这样。但是不要。这是个坏主意。

【讨论】:

  • 我还建议不要滥用它。您通常可以制作一个模型,将这些变量作为函数参数传递。帮助跟踪内容。
  • 我可以声明 int a;在 A.c 中,并像 extern int a 一样使用它;在 B.c 中,因为我不需要 A.c 的 A.h
  • @user2131316,是的,你可以。当包含在预处理中时,头文件基本上只是被复制。如果您多次使用它,使用标题只会让您无需在每个文件中编辑 extern 声明。但无论如何,我建议您寻找不需要全局变量的解决方案。
  • 好的,谢谢,但为什么不这样做,这是个坏主意?
  • @user2131316,它增加了翻译单元之间的耦合,例如。公开全局意味着其他翻译单位了解您的内部运作,以及您如何表示数据。更糟糕的是,他们可以在不让您知道的情况下对其进行修改。
猜你喜欢
  • 1970-01-01
  • 2013-09-06
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
  • 1970-01-01
  • 2011-01-14
  • 2018-07-27
  • 2019-06-20
相关资源
最近更新 更多