gpt4 book ai didi

c++ - VC++编译器和类型转换?

转载 作者:行者123 更新时间:2023-11-27 23:35:18 24 4
gpt4 key购买 nike

当我将程序从 Mac 移动到这台 Windows PC 时,VC++ 2008 编译器向我提供了将无符号整数传递给 cmath pow() 函数的错误。据我了解,此函数未过载以接受除 float 以外的任何内容。

是否有一些编译器标志/设置会忽略这些错误?还有谁知道如何找到关于 VC++ 编译器的文档?

编辑

这不是警告,而是错误。然而,对我来说这不是问题,因为我的程序只处理以整数形式出现的数字,所以我不在乎它们不是 float 。如果这只是警告,我会继续我的生活,但它不会让我编译。我能以某种方式抑制错误吗?就像我说的那样,我的 Mac 上没有出现错误,程序运行良好。

最佳答案

关于这里的其他答案,告诉问题作者关闭此警告不是一个好主意。他的代码被破坏了——他传递的是一个无符号整数而不是一个 float 。你应该告诉他修复他的代码!

This isn't a warning, it's an error. However, for me it's not an issue since my program is only dealing with numbers that come out as integers, so I don't care that they aren't floats. If it was just warnings I would move on with my life, but it's not letting me compile. Can I suppress errors somehow? Like I said, the errors aren't coming up on my Mac and the program is fine.

整数和 float 在内部使用不同的表示。如果 int 和 float 中的数字相同,则它们存储中的位模式完全不同。如果您在本应传递 float 时传递整数,则在任何情况下都不能期望您的代码正常工作。

此外,我断言您的 Mac 代码要么默默地使用该函数的重载版本(例如,您在该平台上使用 C++ 编译),要么您认为它有效,但实际上它是偶然工作或实际上没有工作。

附录

没有任何编译器能够关闭错误。

警告意味着编译器认为您犯了错误

错误意味着编译器不知道该做什么

关于c++ - VC++编译器和类型转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/758017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com