C语言 如果是int+float,是int直接转换成double还是一步一步换的么?

如果是int+float,是int直接转换成double还是一步一步换的么?

第1个回答  2020-01-15
混合类型运算根据运算符的次序,由低优先级的数据类型向高优先级的数据类型转化。这里是int转化为float,表达式返回float。本回答被网友采纳
第2个回答  2020-01-15
这个其实和编译器的实现有很大的关系。比如vc6,当时只有FPU指令,所以两个数直接转换成了80位的扩展双精度数进行计算。现在有了SSE指令,如vs2017就直接在xmm寄存器上运算,使用的是32位的单精度。具体过程自己下个断点反编译一下就看到了