gpt4 book ai didi

c++ - 如何部分禁用 C4244

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:47 27 4
gpt4 key购买 nike

在 Visual C++ 2012 中的代码

double d = 0.5;
float f = d;
int i = f;

为我发出 2 个警告:

test.cpp(26): warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
test.cpp(27): warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data

我想抑制我认为是垃圾邮件的第一个警告,但保留我认为非常有用的第二个警告。有没有可能压制一个而保留另一个?人们通常只是压制他们吗?我们有一个严重的错误,我们错误地将 double 传递给了 float。但是我们大量的数学代码会触发双 > float 警告。

最佳答案

不要抑制旨在防止潜在错误的警告。通过强制转换告诉编译器你知道你在做什么:

double d = 0.5;
float f = static_cast<float>(d);
int i = static_cast<int>(f);

关于c++ - 如何部分禁用 C4244,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19872606/

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