Re: [問題]Float的資料用Char的Buffer傳輸

看板C_and_CPP作者 (我愛ASM)時間8年前 (2016/02/25 17:05), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串2/5 (看更多)
: → 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://www.ptt.cc/bbs/C_and_CPP/M.1456391126.A.BCA.html

02/25 17:28, , 1F
你誤會我的意思了
02/25 17:28, 1F

02/25 19:40, , 2F
小弟不才 可以請問#pragma pack的意思嗎 感恩
02/25 19:40, 2F

02/25 19:43, , 3F
pragma pack拿去google就可以找到相關資料了
02/25 19:43, 3F

02/25 20:01, , 4F
sorry, 小弟不才,受教了,沒用過union這個方法
02/25 20:01, 4F

02/25 20:01, , 5F
之前都是為了避免 MUC與電腦的變數大小不同才這樣做
02/25 20:01, 5F

02/25 20:23, , 6F
更正MCU...
02/25 20:23, 6F
文章代碼(AID): #1MpiFMlA (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1MpiFMlA (C_and_CPP)