【发布时间】:2013-04-10 20:36:10
【问题描述】:
我想避免从两个不同的包含文件重新定义如下:
文件 ABC.h
extern int v=1;
文件 foo.h
#include "ABC.h"
class Foo
#ifdef BLA
: public ABC
#endif
{
...
};
文件bar.h
extern int v=3;
主要:
#define BLA
#include <foo.h>
#include <bar.h>
基本上foo是我写的一个类,bar是第三方库。但这似乎不起作用。我该如何解决这个问题?
对不起,这有点难以描述,这个例子有点糟糕,因为冲突的部分实际上不是变量,而是像#define这样的东西,并且被包裹在大块代码中(错误消息是:“多重定义` __vector_17'")。有没有办法解决它不使用命名空间?
【问题讨论】:
-
如果你想同时使用
v? -
...或者给你自己的变量一个不同的名字?体现其不同的功能?
-
将问题编辑得更准确一些...
-
ABC.h 和 bar.h 里面都有一些我宁愿避免的非常复杂的东西:(
-
这个 SO 条目对您有用吗? stackoverflow.com/questions/6378817/…
标签: c++ arduino c-preprocessor