避免在头文件中重新定义别名变量以进行弱引用

时间:2013-11-15 09:42:01

标签: c gcc attributes weak-references

我在头文件中有一个变量:

myHeader.h

uint16 dummyVar = 0;
extern const uint16 myVar __attribute__((weak,alias("dummyVar")));

因此,当我没有链接myVar定义的部分时,链接器将只给它符号dummyVar的值。

我的问题是,我正在开发一个具有给定架构的项目,其中我的Header-File myHeader.h包含在几个C-Files中。因此,我获得了dummyVar的多个定义。但是当我在我的标题之外定义dummyVar时,它对我的​​__attribute__不再起作用,因为当dummyVar被指定为别名时需要定义{{1}}。

有没有办法解决这个问题而不改变它的基本架构?

1 个答案:

答案 0 :(得分:1)

一个简单的解决方案是将其声明如下:

static uint16 dummyVar = 0;