首页 > 解决方案 > 在进行分配操作时,将其类型转换为比实际更长的数据类型时,c 中的类型转换如何表现

问题描述

这里 tv_sec 是 4 字节长,但它正在将其类型转换为 8 字节变量。变量 't' 可能在 8 个字节中有一些垃圾值。该值将如何填充剩余的 4 个字节。

{ 
    long long t;
    gettimeofday(&tv,NULL);
    t = (long long)(tv.tv_sec) * 1000 ;
    // Some Operation  
}

标签: clinux

解决方案


强制转换会导致转换。转换数值类型时,如果新类型可以表示旧类型中的值,结果就是那个值,不变。

因此,当转换为更广泛的数字类型时,C 实现会生成表示输入值所需的任何位。


推荐阅读