作者MasterChang (我爱ASM)
看板C_and_CPP
标题Re: [问题]Float的资料用Char的Buffer传输
时间Thu Feb 25 17:05:22 2016
: → x000032001: 那就直接把float拆成4bytes 不是最快 02/25 16:35
: 推 qscgy4: 楼上不懂可不可以不要出来嘴? 02/25 16:49
: → qscgy4: 1.假设他的接收端浮点数不是4byte,你要怎麽处理? 02/25 16:51
: → qscgy4: 2.我说的方法可以在在不同变数大小轻易转换,不用任何lib 02/25 16:52
: → qscgy4: 3.不用任何lib的状况下,我是不会拆浮点数啦 02/25 16:55
: → qscgy4: 可以教一下吗? 02/25 16:55
float 4 bytes, double 8 bytes 这个应该没问题吧?
有疑问其实用sizeof()确认一下就好。
#pragma pack(push)
#pragma pack(1)
typedef union{
float f;
char b[4];
}Fto4Bytes_t;
#pragma pack(pop)
这个不需要library....转个念而已。
--
不要问我从哪来,我只是一个浪迹天涯的工程师....
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.126.169.16
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1456391126.A.BCA.html
1F:推 qscgy4: 你误会我的意思了 02/25 17:28
2F:→ a22326284: 小弟不才 可以请问#pragma pack的意思吗 感恩 02/25 19:40
3F:→ james732: pragma pack拿去google就可以找到相关资料了 02/25 19:43
4F:推 qscgy4: sorry, 小弟不才,受教了,没用过union这个方法 02/25 20:01
5F:→ qscgy4: 之前都是为了避免 MUC与电脑的变数大小不同才这样做 02/25 20:01
6F:→ qscgy4: 更正MCU... 02/25 20:23