c++ - 全局变量c/c++之间的冲突

标签 c++ global-variables conflicting-libraries

我正在使用两个文件“.h”,其中有 3 个同名的全局变量。

我们假设有这些文件:

  • A.h => 里面有“union var1”、“union var2”和“#define LENGTH 20”。
  • B.h => 里面有“union var1”、“union var2”和“#define LENGTH 60”。
  • C.h => 导入 A.h 和 B.h。

当我编译C.h时,我有一个相同变量名称冲突的错误原因。

我不想修改它们的名称,因为它们在公共(public)图书馆内(我想按原样使用它们!)。 这是我的问题。 有人能帮我吗?谢谢。

最佳答案

隔离每个公共(public)库,这样您就不需要在任何单个文件中包含两个头文件。文件可以使用一个库,也可以使用另一个库,但不能同时使用两者。您需要为所需的功能创建包装器,包装最容易包装的库,并在使用其他库的代码中使用您的包装器,而不是直接使用库。

关于c++ - 全局变量c/c++之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24304408/

相关文章:

c++ - 错误 : expected initializer before ‘:’ token

C++/(Qt) 指向具有特定方法的任何对象的指针

c++ - 由于多个 'main',STM8上的cpputest失败

c++ - 全局对象中的 "term does not evaluate to a function taking ..."

c - 如何在不使其成为全局的情况下共享硬件抽象结构

c++ - 没有 Cocoa 的 OSX 中的鼠标/键盘输入

android - Android库中的XML资源冲突

javascript - 与 jQuery.noConflict() 冲突

javascript - jquery 与 Foundation 5 和 owl carousel 2 冲突

r - knitr 中 R 代码块和 LaTeX 的全局变量