gpt4 book ai didi

objective-c - 一个 unsigned unsigned long 的两倍总是一个 double 吗?

转载 作者:搜寻专家 更新时间:2023-10-30 19:54:09 24 4
gpt4 key购买 nike

unsigned long long i = 1000;

现在 0.1*i 不应该自动转换成 double 吗?为什么当我将 0.1*i 传递给需要 unsigned long long 的函数参数时编译器没有警告我?我认为编译器应该警告这种潜在的精度损失。

我的编译器 Clang 配置了“-Weverything”以显示所有可能的警告。

最佳答案

是的,整数和 float 的运算结果是 float 。但是,当您将该结果( double )传递给需要 unsigned long long 的函数时,将自动进行隐式转换,结果将被截断为 unsigned long long。

为什么没有收到警告?因为就像 GCC 一样,Clang 的 -Wall 不会打开所有警告 - 您始终可以使用 -Wextra 来获得真正的所有警告。

关于objective-c - 一个 unsigned unsigned long 的两倍总是一个 double 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12228954/

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