0

我正在开发一个定义如下全局变量的项目:

// 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 假装这是宏的定义?

4

1 回答 1

1

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

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

诚然这是一个杂项,可能会导致无法预料的问题,但它可能对您的实施有用。

于 2013-04-18T16:45:39.157 回答