以下内容有效吗?我知道字节顺序,这是Windows环境。如果我定义Int32Double myVar;如果myVar.int32.low是一个计算值,myVar.d会总是一样吗?
例如:myVar.d = 0.4 * log(4); printf("%08X\n", myVar.int32.low);

union Int32Double
{
    struct
    {
        int low;
        int high;
    } int32;

    double d;
};

最佳答案

不,这是写入d和从int32读取的未定义行为。

关于c++ - union 中的int数据类型(低,高)结构表示的 double 数据类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13351808/

10-13 04:49