有没有办法在VS2008下禁用某些错误

Is there a way to disable certain errors under VS2008?

本文关键字:错误 VS2008 有没有      更新时间:2023-10-16

我正在尝试使用VS2008编译许多遗留的C(C99)代码。为了解决VS2008编译器不支持的C99代码的一些问题,我切换到C++编译器,但我现在面临另一个C++强制转换错误的问题:

 error C2440: '=' : cannot convert from 'void *' to 'uint8_t *'
 Conversion from 'void*' to pointer to non-'void' requires an explicit cast

C++编译器上是否有一个设置,可以在C++中生成时禁用该错误并允许C样式转换?

没有办法禁用这些错误。这些都是由语言定义的硬错误。你不能随意选择要遵守核心语言的哪些部分。如果这些是特定于供应商的扩展,那么可能有禁用它们的选项,但事实并非如此。这些错误与C++语言的基本规则有关。

我的建议是使用真正的C99编译器编译此代码。任何试图用MSVC 2008(作为C或C++)编译它的尝试都会导致失望和痛苦。

最新版本的MSVC使用此代码可能会更好。在MSVC的最新版本中,Microsoft在编译为C时改进了对C99的支持。对C99支持并不完整,但它可能足以正确编译代码。