我想将单个精度浮点数编译成闪存0xFFFFFFFF(单位化闪存).
当我尝试时(FLOAT32) ((UINT32) 0xFFFFFFFF),它会(0x0000804F)在编译过程中转换为浮点而不是0xFFFFFFFF.
这适用于文件范围中结构中字段的初始化.当我想到它时,这意味着编译器期望FLOAT32文字.
我开始怀疑这是否真的可行.
[编辑:这适用于文件范围中结构中字段的初始化]
在C中,最好的方法是使用a union.存放到UINT32现场,然后从float现场读出.
这里完成讨论:如何将浮点数转换或转换为其位序列,例如long
此外,如果您具有可用的C99功能,则可以使用指定的初始值设定项来指定要分配的联合字段.即使您没有C99,也可以确保其中的UINT32字段union是第一个,因此默认情况下会分配它. http://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html