我正在开发一个定义像这样的全局变量的项目:
// 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假装这是宏的定义?
答案 0 :(得分:1)
如果#define
是初始(不需要的)定义之后的首选定义,Eclipse在进行动态宏扩展时似乎使用了最新的定义。
因此,如果您重新#define
正在编辑的文件中的宏,这可能会解决您的问题。
虽然这是一个kludge并可能导致无法预料的问题,但它可能适用于您的实施。