gpt4 book ai didi

c++ - 如何避免在 std::modf 中使用临时变量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:21:39 25 4
gpt4 key购买 nike

我最近遇到了一个问题,我在 MSVC 中遇到了段错误,而在 GCC 中却不会。

几小时后我意识到我的 MSVC 版本显然不支持以下语法:

double value = 3.4;
double fractional = std::modf(value, nullptr);

我不想/关心数字的全部部分。

是的,我知道我可以做“3.4 - 3.0”之类的,但我担心以这种方式专门使用 modf。目前我只能通过以下方式看到这样做:

double temp; 
double value = 3.4;
double fractional = std::modf(value, &temp);

有没有办法绕过这个临时变量?

最佳答案

如果之后你不需要value,你可以称它为

double value = 3.4;
double fractional = std::modf(value, &value);

如果您仍然需要原始值,您可以轻松地重建它。

PS:我没有发现任何提到 nullptr 是有效参数的地方。也许 MSVC 的破坏是正确的。

PS2:我不会太担心不必要的临时。我希望编译器生成类似的代码,并明确提及临时文件比传递 value 只是为了避免临时文件更清晰、更易读。

关于c++ - 如何避免在 std::modf 中使用临时变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56223116/

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