因为 intsafe.h
和 stdint.h
都定义了 INT8_MIN
。因此 VS2010 会生成一条警告:
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(72): warning C4005: 'INT8_MIN' : macro redefinition
1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\intsafe.h(144) : see previous definition of 'INT8_MIN'
有没有办法在 VS2010 中修复该警告。
最佳答案
显然这是 VS2010 中的错误。一般来说,您可以避免它,但在 MFC 应用程序中,基本上不可能在您的任何其他代码中包含 stdint.h 而不命中它。
我只是在提示的文件顶部这样做:
#pragma warning (push)
#pragma warning (disable : 4005)
#include <intsafe.h>
#include <stdint.h>
#pragma warning (pop)
可以这么说,它让那些 header “不碍事”,让您继续新的一天。
关于c++ - 修复 C++ 中的宏重新定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25201724/