警告 C4005 'identifier':宏重定义

Warning C4005 'identifier' : macro redefinition

本文关键字:定义 警告 identifier C4005      更新时间:2023-10-16

我希望我的应用程序在win32和x64平台上工作。我已经在头文件中添加了以下代码,但我收到了C4005警告。我该如何避免这种情况?

#ifdef WIN32
#define SIZEOF_ANALYSIS_INFO 168    
#endif
#ifdef _WIN64
#define SIZEOF_ANALYSIS_INFO 172
#endif

_WIN32宏现在总是在Windows上编译时定义的,即使是在64位编译中也是如此。你会想重新排列一下你的代码:

#ifdef _WIN64
#define SIZEOF_ANALYSIS_INFO 172
#elif defined(_WIN32)
#define SIZEOF_ANALYSIS_INFO 168
#endif

如果你总是用VC编译这个,你可以只在中间使用#else

如果可能的话,最好将sizeof运算符与保存分析信息的任何结构一起使用。