我正在使用两个文件“.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/