警告 C4005 'identifier':宏重定义
Warning C4005 'identifier' : macro redefinition
我希望我的应用程序在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
运算符与保存分析信息的任何结构一起使用。
相关文章:
- 为什么我会收到警告,指出函数已使用但未定义,以及已定义但未使用?
- 在 eclipse 中,将宏重定义视为错误而不是警告
- G++ 编译器未为未定义的方法生成错误/警告
- 如何禁止在 g++ 中使用但从未定义警告的内联函数
- XCode 警告"此处需要实例化变量'Singleton:<Foo>:_instance',但没有可用的定义
- C++ 添加编译器警告,以错误使用自定义打印/日志功能
- 我正在尝试在我的类中创建一个静态成员,但编译器警告我它是未定义的
- 链接时突然收到maxrregcount警告和未定义的引用错误
- 避免对仅在源文件中定义的类发出弱 vtable 警告
- 警告定义朋友操作员在名称空间内声明
- 为什么方法重载或枚举标志定义会触发 gcc7.2 编译器警告?
- 是否有 GCC 标志来发出有关作用域内相同变量重定义的警告?
- 警告 C4661:没有为显式模板实例化请求提供合适的定义
- 通常如何避免重定义警告?
- 关于静态模板化 constexpr 的 Clang 警告(未定义内联函数)
- C 17 GCC编译器为什么会发出有关未定义的警告
- IntelliSense函数定义未找到QT信号的警告
- 宏重新定义警告
- 链接器不指出错误;多个定义警告指向同一行
- c++模板自定义警告