我想把一个精确的浮点编译成flash作为0xFFFFFFFF(统一的flash)。
当我尝试(FLOAT32) ((UINT32) 0xFFFFFFFF)时,它在编译过程中转换为浮点(0x0000804F),而不是0xFFFFFFFF
这适用于文件作用域中结构中字段的初始化当我想到它时,这意味着编译器需要一个FLOAT32文本。
我开始怀疑这是否真的可能。
[编辑:这适用于文件作用域中结构中字段的初始化]

最佳答案

在C语言中,最好的方法是使用union存储到UINT32字段中,然后从float字段中读取。
在此完成讨论:How to convert or cast a float into its bit sequence such as a long
此外,如果有可用的C99功能,则可以使用指定的初始值设定项指定要分配的并集字段。即使您没有C99,您也可以确保UINT32中的union字段是第一个字段,因此默认情况下它将被分配。http://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html

10-04 23:02