将用C语言开发的unix项目移植到Windows并使用VS 2005进行编译时,编译器会报告与错误类型转换相关的错误,例如“无法将'const char *'转换为'char *'”。是否可以通过编译器选项禁用此强检查。
- 感谢关注
答案 0 :(得分:1)
我很确定,你只需要设置“Compile as C”命令行选项(/ TP)。我并不完全熟悉ANSI-C(通过ANSI-C ++),但我强烈建议将其转换为类型安全的。为什么返回一个const然后忽略这个事实?
答案 1 :(得分:1)
假设您的代码是有效的C(C89,特别是,因为VC ++不支持C99),如果您使用.c扩展名命名文件,或者在项目属性中将其设置为“Compile”,它将自动禁用作为C“
这应该禁用所有特定于C ++的功能和类型检查。
答案 2 :(得分: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