如何在 VS 中禁用 C++ 强类型检查

问题描述 投票:0回答:3

将 C 语言开发的 unix 项目移植到 windows 并用 VS 2005 编译时,编译器报告与错误类型转换相关的错误,如“can not conversion 'const char*' to 'char*'”。是否可以通过编译器选项禁用这种强检查。

visual-c++ visual-studio-2005
3个回答
1
投票

假设您的代码是有效的 C(C89,特别是,因为 VC++ 不支持 C99),如果您使用 .c 扩展名命名该文件,或者在项目属性中将其设置为“编译为 C”,它将自动禁用”

这应该禁用所有 C++ 特定的功能和类型检查。


1
投票

我很确定,您只需要设置“编译为C”命令行选项(/TP)。 我并不完全熟悉 ANSI-C(超过 ANSI-C++),但无论如何我强烈建议将其转换为类型安全。 为什么返回一个 const 然后忽略这个事实?


0
投票

我不确定你可以 - 可能是 C 代码无效(并且你使用的 Unix 编译器错误地允许它)。您可以禁用警告,但我认为您不能禁用特定错误。

如果还没有,您可以更改项目选项以编译为 C 而不是 C++(Prpoerties -> Config Properties -> C/C++ -> Advanced),但我认为这不会有帮助。

如果您可以编译为 C++,const_cast 可能会有所帮助:http://msdn.microsoft.com/en-us/library/bz6at95h(VS.80).aspx

© www.soinside.com 2019 - 2024. All rights reserved.