我正在处理类型校正示例,并且想知道WP或其他插件是否可以处理此问题。到目前为止,我还无法在WP和工会上找到任何东西,但是它们似乎得到了支持。
以下是示例片段:
float uint32_reg_to_float(uint32_t val) {
union {
uint32_t ui32;
float f;
} u;
u.ui32 = val;
return u.f;
}
答案 0 :(得分:1)
据我所知,WP将只能处理在最严格的意义上使用联合的程序,即,该程序始终读取与上次更新联合时完全相同的字段(在从纯粹的逻辑观点来看,您可以或多或少地将所有字段视为不同的变量)。不过,这可能不是您所说的punning类型。
另一方面,Eva对此类并集应该没有任何问题,显然需要注意的是,当解释为float时,会导致较小整数间隔的抽象位模式可能更加不精确。