gpt4 book ai didi

c - 什么时候执行类型转换计算?

转载 作者:太空狗 更新时间:2023-10-29 15:48:20 25 4
gpt4 key购买 nike

我从来没有真正理解什么时候会发生什么情况。我假设隐式转换发生在编译时(如果我错了请纠正我),但是这个怎么样:

int i = 0;

double d = sqrt((double)i);

这会在编译时/运行时发生吗?

最佳答案

这取决于优化和架构。例如,带有 -O3 的 GCC 将忽略对某些值的 sqrt 的调用,如 here 所示。 .

如果变量在编译时未知(即,如果它是从文件或用户输入中读取的),则无法使用 的 double 值实际调用 sqrt >我。在 x86 上,这需要像 CVTSI2SD 这样的指令(将双字整数转换为标量 double 浮点值),如 here 所示.编译器在编译时生成该指令,但运行指令(显然)发生在运行时。

关于c - 什么时候执行类型转换计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54496487/

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