推 LPH66: 來跟我說一次: 「陣列不等於指標」 06/15 18:58
→ LPH66: 所以你在 getDataFun() 這裡把一個不相容的結構傳進去了 06/15 18:59
→ LPH66: 你可能需要釐清一下到底 _USE 結構是要怎麼用 06/15 19:02
→ LPH66: 應該不會是像你這樣硬傳進去 06/15 19:03
→ chaos1993: 看完的理解是getDataFunc(&obj) 將obj.usedata紀錄glo 06/16 00:26
→ chaos1993: baldata[0]的記憶體位置,所以step1才取值拿到globald 06/16 00:26
→ chaos1993: ata[0]位置並assign給char* 06/16 00:26
→ chaos1993: 但這種不相容strict可以過..?compiler相對不嚴謹嗎 06/16 00:28
→ chaos1993: 更正struct 06/16 00:28
推 god145145: PIC用XC8比較多,你要不要換一下 06/16 09:16
→ Lipraxde: 他是用 XC8 吧 XD? 06/16 10:37
→ ando5566: 是XC8沒錯 抱歉打反了 06/16 14:02
推 OnlyRD: 你根本沒有拷貝陣列吧?只是破壞了原本的struct的 06/16 20:18
→ OnlyRD: 佔一個pointer 06/16 20:18
→ OnlyRD: 的記憶體。 06/16 20:18
推 OnlyRD: 喔喔你是要複製資料到global的array去嗎?這寫法 06/16 20:30
→ OnlyRD: 實在難不出有 06/16 20:30
→ OnlyRD: 什麼理由要這樣做,感覺像故意隱藏起來,也許是che 06/16 20:30
→ OnlyRD: cksum還是防偽 06/16 20:30
→ OnlyRD: 防盜版?不懂。但這段code看起來挺危險,不過如果 06/16 20:30
→ OnlyRD: 字節對齊沒問題 06/16 20:30
→ OnlyRD: ,應該可以動作,但不知道compiler有沒有一些奇奇 06/16 20:30
→ OnlyRD: 怪怪的編譯設定 06/16 20:30
→ OnlyRD: 要注意。 06/16 20:30
→ sarafciel: 媽呀我看了20分鐘才看懂這段code到底想幹嘛= = 06/17 02:09
→ sarafciel: 我沒用過這顆compiler 但應該不至於連union都不支援..? 06/17 02:12
推 CoNsTaR: 疊床架屋下的產物吧 06/17 07:55
→ CoNsTaR: 這段 code 的問題應該只有把 MSG_OBJ_USE* 當作 MSG_OBJ* 06/17 07:55
→ CoNsTaR: 用而已,其他看起來沒問題吧 06/17 07:55
→ Lipraxde: C 的 symbol 沒有 mangling,變數變成用不同 type 去解 06/17 10:27
→ Lipraxde: 讀的失誤也很容易發生,說不定也是他這個 obj 能這樣傳 06/17 10:27
→ Lipraxde: 的原因XD 06/17 10:27
推 OnlyRD: 以前看過類似的東西,叫做GObject,但他是為了提供 06/17 17:43
→ OnlyRD: ABI級的相容性 06/17 17:43
→ OnlyRD: (沒記錯的話),還有訊號、物件等等,但用GObject寫 06/17 17:43
→ OnlyRD: 程式無敵痛苦 06/17 17:43
→ OnlyRD: ,寫過一次就希望以後都不要碰到了,一堆代碼重複 06/17 17:43
→ OnlyRD: 的功夫。 06/17 17:43