在Eclipse中用不同的定义替换宏?

时间:2013-04-05 23:59:19

标签: eclipse eclipse-cdt

我正在开发一个定义像这样的全局变量的项目:

// Define an correctly-sized array of pointers to avoid static initialization.
// Use an array of pointers instead of an array of char in case there is some alignment issue.
#define DEFINE_GLOBAL(type, name, ...) \
    void * name[(sizeof(type) + sizeof(void *) - 1) / sizeof(void *)];

显然可以正常工作,但会导致Eclipse将其中一个全局变量的每一次使用都显示为错误。

我希望是这样的:

#define DEFINE_GLOBAL(type, name, ...) \
    type name;

但我无法更改此文件,那么有没有办法告诉Eclipse假装这是宏的定义?

1 个答案:

答案 0 :(得分:1)

如果#define是初始(不需要的)定义之后的首选定义,Eclipse在进行动态宏扩展时似乎使用了最新的定义。

因此,如果您重新#define正在编辑的文件中的宏,这可能会解决您的问题。

虽然这是一个kludge并可能导致无法预料的问题,但它可能适用于您的实施。